CODE:00461D30 TBaseCrypt dd offset @TBaseCrypt@ ; DATA XREF: CODE:004620B4o
CODE:00461D30 ; `__vtable__'[TBaseCrypt]
CODE:00461D34 dd 2 dup(0)
CODE:00461D3C dd offset word_461DAC
CODE:00461D40 dd offset byte_461DD0
CODE:00461D44 dd 0
CODE:00461D48 dd 0
CODE:00461D4C dd 0
CODE:00461D50 dd offset aTbasecrypt ; "TBaseCrypt"
CODE:00461D54 dd 10084h
CODE:00461D58 dd offset TComponent
CODE:00461D5C dd offset @TComponent@SafeCallException ; TComponent::SafeCallException
CODE:00461D60 dd offset @TObject@DefaultHandler ; TObject::DefaultHandler
CODE:00461D64 dd offset @TObject@NewInstance ; TObject::NewInstance
CODE:00461D68 dd offset @TObject@FreeInstance ; TObject::FreeInstance
CODE:00461D6C dd offset @TBaseCrypt@Destroy ; TBaseCrypt::Destroy
CODE:00461D70 ; `__vtable__'[TBaseCrypt]
CODE:00461D70 @TBaseCrypt@ dd offset @TPersistent@AssignTo ; DATA XREF: CODE:TBaseCrypto
CODE:00461D70 ; CODE:00461DDCo
CODE:00461D70 ; TPersistent::AssignTo
CODE:00461D74 dd offset DefineProperties
CODE:00461D78 dd offset @TPersistent@Assign ; TPersistent::Assign
CODE:00461D7C dd offset Loaded
CODE:00461D80 dd offset Notification
CODE:00461D84 dd offset Exclude
CODE:00461D88 dd offset sub_416364
CODE:00461D8C dd offset ValidateRename
CODE:00461D90 dd offset sub_4161E4
CODE:00461D94 dd offset @TComponent@Create ; TComponent::Create
CODE:00461D98 dd offset @@AbstractError ; __linkproc__ AbstractError
CODE:00461D9C dd offset @@AbstractError ; __linkproc__ AbstractError
CODE:00461DA0 dd offset @@AbstractError ; __linkproc__ AbstractError
CODE:00461DA4 dd offset sub_461EC4
CODE:00461DA8 dd offset sub_461ED8
CODE:00461DAC word_461DAC dw 0Eh ; DATA XREF: CODE:00461D3Co
CODE:00461DAE dd 0, 1
CODE:00461DB6 dd offset String
CODE:00461DBA dd 24h
CODE:00461DBE aTbasecrypt db 10,'TBaseCrypt' ; DATA XREF: CODE:00461D50o
CODE:00461DCC ; BaseCrypt::TBaseCrypt
CODE:00461DCC @BaseCrypt@TBaseCrypt dd offset byte_461DD0 ; DATA XREF: CODE:0046211Eo
CODE:00461DD0 byte_461DD0 db 7 ; DATA XREF: CODE:00461D40o
CODE:00461DD0 ; CODE:BaseCrypt::TBaseCrypto
CODE:00461DD1 db 10,'TBaseCrypt'
CODE:00461DDC dd offset @TBaseCrypt@ ; `__vtable__'[TBaseCrypt]
CODE:00461DE0 dd offset @Classes@TComponent ; Classes::TComponent
CODE:00461DE4 dw 4
CODE:00461DE6 db 9,'BaseCrypt'
CODE:00461DF0 dw 2
CODE:00461DF2 dd offset String
CODE:00461DF6 dd 0
CODE:00461DFA dd 0FF000024h
CODE:00461DFE dd 0
CODE:00461E02 dd 80000000h
CODE:00461E06 dd 80000000h
CODE:00461E0A dw 2
CODE:00461E0C db 3,'Key'
CODE:00461E10 dd offset Word
CODE:00461E14 dd 0FF000030h
CODE:00461E18 dd 0FF000030h
CODE:00461E1C dd 1
CODE:00461E20 dd 80000000h
CODE:00461E24 dd 80000000h
CODE:00461E28 dw 3
CODE:00461E2A db 11,'InputLength'
CODE:00461E68 sub_461E68 proc near ; CODE XREF: sub_461E88+12p
CODE:00461E68 var_5 = byte ptr -5
CODE:00461E68 var_4 = dword ptr -4
CODE:00461E68 push ebp
CODE:00461E69 mov ebp, esp
CODE:00461E6B add esp, -8
CODE:00461E6E mov [ebp+var_5], dl
CODE:00461E71 mov [ebp+var_4], eax
CODE:00461E74 cmp [ebp+var_5], 0
CODE:00461E78 jnz short loc_461E82
CODE:00461E7A mov eax, [ebp+var_4]
CODE:00461E7D mov edx, [eax]
CODE:00461E7F call dword ptr [edx+30h]
CODE:00461E82 loc_461E82: ; CODE XREF: sub_461E68+10j
CODE:00461E82 pop ecx
CODE:00461E83 pop ecx
CODE:00461E84 pop ebp
CODE:00461E85 retn
CODE:00461E85 sub_461E68 endp
CODE:00461E88 sub_461E88 proc near ; CODE XREF: sub_5799FC+75p
CODE:00461E88 var_5 = byte ptr -5
CODE:00461E88 var_4 = dword ptr -4
CODE:00461E88 push ebp
CODE:00461E89 mov ebp, esp
CODE:00461E8B add esp, -8
CODE:00461E8E mov [ebp+var_5], dl
CODE:00461E91 mov [ebp+var_4], eax
CODE:00461E94 mov dl, [ebp+var_5]
CODE:00461E97 mov eax, [ebp+var_4]
CODE:00461E9A call sub_461E68
CODE:00461E9F mov eax, [ebp+var_4]
CODE:00461EA2 movzx ecx, word ptr [eax+30h]
CODE:00461EA6 mov eax, [ebp+var_4]
CODE:00461EA9 lea edx, [eax+32h]
CODE:00461EAC mov eax, [ebp+var_4]
CODE:00461EAF mov eax, [eax+28h]
CODE:00461EB2 call @Move
CODE:00461EB7 mov eax, [ebp+var_4]
CODE:00461EBA mov edx, [eax]
CODE:00461EBC call dword ptr [edx+34h]
CODE:00461EBF pop ecx
CODE:00461EC0 pop ecx
CODE:00461EC1 pop ebp
CODE:00461EC2 retn
CODE:00461EC2 sub_461E88 endp
CODE:00461EC4 sub_461EC4 proc near ; DATA XREF: CODE:00461DA4o
CODE:00461EC4 ; CODE:00462100o
CODE:00461EC4 var_4 = dword ptr -4
CODE:00461EC4 push ebp
CODE:00461EC5 mov ebp, esp
CODE:00461EC7 push ecx
CODE:00461EC8 mov [ebp+var_4], eax
CODE:00461ECB mov eax, [ebp+var_4]
CODE:00461ECE call sub_461EEC
CODE:00461ED3 pop ecx
CODE:00461ED4 pop ebp
CODE:00461ED5 retn
CODE:00461ED5 sub_461EC4 endp
CODE:00461ED8 sub_461ED8 proc near ; DATA XREF: CODE:00461DA8o
CODE:00461ED8 ; CODE:00462104o
CODE:00461ED8 var_4 = dword ptr -4
CODE:00461ED8 push ebp
CODE:00461ED9 mov ebp, esp
CODE:00461EDB push ecx
CODE:00461EDC mov [ebp+var_4], eax
CODE:00461EDF mov eax, [ebp+var_4]
CODE:00461EE2 call sub_461FA0
CODE:00461EE7 pop ecx
CODE:00461EE8 pop ebp
CODE:00461EE9 retn
CODE:00461EE9 sub_461ED8 endp
CODE:00461EEC sub_461EEC proc near ; CODE XREF: sub_461EC4+Ap
CODE:00461EEC var_6 = word ptr -6
CODE:00461EEC var_4 = dword ptr -4
CODE:00461EEC push ebp
CODE:00461EED mov ebp, esp
CODE:00461EEF add esp, -8
CODE:00461EF2 push ebx
CODE:00461EF3 mov [ebp+var_4], eax
CODE:00461EF6 jmp short loc_461F0E
CODE:00461EF8 loc_461EF8: ; CODE XREF: sub_461EEC+3Aj
CODE:00461EF8 mov eax, [ebp+var_4]
CODE:00461EFB movzx eax, word ptr [eax+30h]
CODE:00461EFF mov edx, [ebp+var_4]
CODE:00461F02 mov byte ptr [edx+eax+32h], 0
CODE:00461F07 mov eax, [ebp+var_4]
CODE:00461F0A inc word ptr [eax+30h]
CODE:00461F0E loc_461F0E: ; CODE XREF: sub_461EEC+Aj
CODE:00461F0E mov eax, [ebp+var_4]
CODE:00461F11 movzx eax, word ptr [eax+30h]
CODE:00461F15 mov edx, [ebp+var_4]
CODE:00461F18 movzx edx, byte ptr [edx+10082h]
CODE:00461F1F mov ecx, edx
CODE:00461F21 cdq
CODE:00461F22 idiv ecx
CODE:00461F24 test edx, edx
CODE:00461F26 jnz short loc_461EF8
CODE:00461F28 mov [ebp+var_6], 0
CODE:00461F2E loc_461F2E: ; CODE XREF: sub_461EEC+ABj
CODE:00461F2E mov eax, [ebp+var_4]
CODE:00461F31 xor ecx, ecx
CODE:00461F33 mov cl, [eax+10082h]
CODE:00461F39 mov eax, [ebp+var_4]
CODE:00461F3C lea edx, [eax+10042h]
CODE:00461F42 movzx eax, [ebp+var_6]
CODE:00461F46 mov ebx, [ebp+var_4]
CODE:00461F49 lea eax, [ebx+eax+32h]
CODE:00461F4D call @Move
CODE:00461F52 mov eax, [ebp+var_4]
CODE:00461F55 mov edx, [eax]
CODE:00461F57 call dword ptr [edx+28h]
CODE:00461F5A movzx eax, [ebp+var_6]
CODE:00461F5E mov edx, [ebp+var_4]
CODE:00461F61 mov edx, [edx+2Ch]
CODE:00461F64 add edx, eax
CODE:00461F66 mov eax, [ebp+var_4]
CODE:00461F69 xor ecx, ecx
CODE:00461F6B mov cl, [eax+10082h]
CODE:00461F71 mov eax, [ebp+var_4]
CODE:00461F74 add eax, 10042h
CODE:00461F79 call @Move
CODE:00461F7E mov eax, [ebp+var_4]
CODE:00461F81 movzx eax, byte ptr [eax+10082h]
CODE:00461F88 add [ebp+var_6], ax
CODE:00461F8C mov ax, [ebp+var_6]
CODE:00461F90 mov edx, [ebp+var_4]
CODE:00461F93 cmp ax, [edx+30h]
CODE:00461F97 jnz short loc_461F2E
CODE:00461F99 pop ebx
CODE:00461F9A pop ecx
CODE:00461F9B pop ecx
CODE:00461F9C pop ebp
CODE:00461F9D retn
CODE:00461F9D sub_461EEC endp
CODE:00461FA0 sub_461FA0 proc near ; CODE XREF: sub_461ED8+Ap
CODE:00461FA0 var_6 = word ptr -6
CODE:00461FA0 var_4 = dword ptr -4
CODE:00461FA0 push ebp
CODE:00461FA1 mov ebp, esp
CODE:00461FA3 add esp, -8
CODE:00461FA6 push ebx
CODE:00461FA7 mov [ebp+var_4], eax
CODE:00461FAA jmp short loc_461FC2
CODE:00461FAC loc_461FAC: ; CODE XREF: sub_461FA0+3Aj
CODE:00461FAC mov eax, [ebp+var_4]
CODE:00461FAF movzx eax, word ptr [eax+30h]
CODE:00461FB3 mov edx, [ebp+var_4]
CODE:00461FB6 mov byte ptr [edx+eax+32h], 0
CODE:00461FBB mov eax, [ebp+var_4]
CODE:00461FBE inc word ptr [eax+30h]
CODE:00461FC2 loc_461FC2: ; CODE XREF: sub_461FA0+Aj
CODE:00461FC2 mov eax, [ebp+var_4]
CODE:00461FC5 movzx eax, word ptr [eax+30h]
CODE:00461FC9 mov edx, [ebp+var_4]
CODE:00461FCC movzx edx, byte ptr [edx+10082h]
CODE:00461FD3 mov ecx, edx
CODE:00461FD5 cdq
CODE:00461FD6 idiv ecx
CODE:00461FD8 test edx, edx
CODE:00461FDA jnz short loc_461FAC
CODE:00461FDC mov [ebp+var_6], 0
CODE:00461FE2 loc_461FE2: ; CODE XREF: sub_461FA0+ABj
CODE:00461FE2 mov eax, [ebp+var_4]
CODE:00461FE5 xor ecx, ecx
CODE:00461FE7 mov cl, [eax+10082h]
CODE:00461FED mov eax, [ebp+var_4]
CODE:00461FF0 lea edx, [eax+10042h]
CODE:00461FF6 movzx eax, [ebp+var_6]
CODE:00461FFA mov ebx, [ebp+var_4]
CODE:00461FFD lea eax, [ebx+eax+32h]
CODE:00462001 call @Move
CODE:00462006 mov eax, [ebp+var_4]
CODE:00462009 mov edx, [eax]
CODE:0046200B call dword ptr [edx+2Ch]
CODE:0046200E movzx eax, [ebp+var_6]
CODE:00462012 mov edx, [ebp+var_4]
CODE:00462015 mov edx, [edx+2Ch]
CODE:00462018 add edx, eax
CODE:0046201A mov eax, [ebp+var_4]
CODE:0046201D xor ecx, ecx
CODE:0046201F mov cl, [eax+10082h]
CODE:00462025 mov eax, [ebp+var_4]
CODE:00462028 add eax, 10042h
CODE:0046202D call @Move
CODE:00462032 mov eax, [ebp+var_4]
CODE:00462035 movzx eax, byte ptr [eax+10082h]
CODE:0046203C add [ebp+var_6], ax
CODE:00462040 mov ax, [ebp+var_6]
CODE:00462044 mov edx, [ebp+var_4]
CODE:00462047 cmp ax, [edx+30h]
CODE:0046204B jnz short loc_461FE2
CODE:0046204D pop ebx
CODE:0046204E pop ecx
CODE:0046204F pop ecx
CODE:00462050 pop ebp
CODE:00462051 retn
CODE:00462051 sub_461FA0 endp
CODE:00462054 ; BaseCrypt::Finalization
CODE:00462054 @BaseCrypt@Finalization proc near ; DATA XREF: CODE:0059B4DCo
CODE:00462054 push ebp
CODE:00462055 mov ebp, esp
CODE:00462057 xor eax, eax
CODE:00462059 push ebp
CODE:0046205A push offset loc_462079
CODE:0046205F push dword ptr fs:[eax]
CODE:00462062 mov fs:[eax], esp
CODE:00462065 inc ds:dword_5A47D8
CODE:0046206B xor eax, eax
CODE:0046206D pop edx
CODE:0046206E pop ecx
CODE:0046206F pop ecx
CODE:00462070 mov fs:[eax], edx
CODE:00462073 push offset loc_462080
CODE:00462078 locret_462078: ; CODE XREF: BaseCrypt::Finalization+2Aj
CODE:00462078 retn
CODE:00462079 loc_462079: ; DATA XREF: BaseCrypt::Finalization+6o
CODE:00462079 jmp @@HandleFinally ; __linkproc__ HandleFinally
CODE:0046207E jmp short locret_462078
CODE:00462080 loc_462080: ; CODE XREF: BaseCrypt::Finalization:locret_462078j
CODE:00462080 ; DATA XREF: BaseCrypt::Finalization+1Fo
CODE:00462080 pop ebp
CODE:00462081 retn
CODE:00462081 @BaseCrypt@Finalization endp ; sp = -4
CODE:00462084 ; BaseCrypt::Initialization
CODE:00462084 @BaseCrypt@Initialization proc near ; DATA XREF: CODE:0059B4D8o
CODE:00462084 sub ds:dword_5A47D8, 1
CODE:0046208B retn
CODE:0046208B @BaseCrypt@Initialization endp
CODE:0046208C TRC5 dd offset @TRC5@ ; DATA XREF: sub_5799FC+2Ar
CODE:0046208C ; `__vtable__'[trc5]
CODE:00462090 dd 3 dup(0)
CODE:0046209C dd offset byte_462114
CODE:004620A0 dd 3 dup(0)
CODE:004620AC dd offset aTrc5_0 ; "TRC5"
CODE:004620B0 dd 1009Ch
CODE:004620B4 dd offset TBaseCrypt
CODE:004620B8 dd offset @TComponent@SafeCallException ; TComponent::SafeCallException
CODE:004620BC dd offset @TObject@DefaultHandler ; TObject::DefaultHandler
CODE:004620C0 dd offset @TObject@NewInstance ; TObject::NewInstance
CODE:004620C4 dd offset @TObject@FreeInstance ; TObject::FreeInstance
CODE:004620C8 dd offset @TRC5@Destroy ; TRC5::Destroy
CODE:004620CC ; `__vtable__'[trc5]
CODE:004620CC @TRC5@ dd offset @TPersistent@AssignTo ; DATA XREF: CODE:TRC5o
CODE:004620CC ; CODE:0046211Ao
CODE:004620CC ; TPersistent::AssignTo
CODE:004620D0 dd offset DefineProperties
CODE:004620D4 dd offset @TPersistent@Assign ; TPersistent::Assign
CODE:004620D8 dd offset Loaded
CODE:004620DC dd offset Notification
CODE:004620E0 dd offset Exclude
CODE:004620E4 dd offset sub_416364
CODE:004620E8 dd offset ValidateRename
CODE:004620EC dd offset sub_4161E4
CODE:004620F0 dd offset @TRC5@Create ; TRC5::Create
CODE:004620F4 dd offset sub_4624DC
CODE:004620F8 dd offset sub_4625D4
CODE:004620FC dd offset sub_462274
CODE:00462100 dd offset sub_461EC4
CODE:00462104 dd offset sub_461ED8
CODE:00462108 aTrc5_0 db 4,'TRC5' ; DATA XREF: CODE:004620ACo
CODE:00462110 ; Rc5::TRC5
CODE:00462110 @Rc5@TRC5 dd offset byte_462114
CODE:00462114 byte_462114 db 7 ; DATA XREF: CODE:0046209Co
CODE:00462114 ; CODE:Rc5::TRC5o
CODE:00462115 db 4,'TRC5'
CODE:0046211A dd offset @TRC5@ ; `__vtable__'[trc5]
CODE:0046211E dd offset @BaseCrypt@TBaseCrypt ; BaseCrypt::TBaseCrypt
CODE:00462122 dw 5
CODE:00462124 db 3,'Rc5'
CODE:00462128 dw 1
CODE:0046212A dd offset Byte
CODE:0046212E dd 0FF010084h
CODE:00462132 dd 0FF010084h
CODE:00462136 dd 1
CODE:0046213A dd 80000000h
CODE:0046213E dd 80000000h
CODE:00462142 dw 4
CODE:00462144 db 6,'Rounds'
CODE:0046214C sub_46214C proc near ; CODE XREF: sub_462274+19Cp
CODE:0046214C ; sub_462274+1F1p ...
CODE:0046214C mov cl, dl
CODE:0046214E rol eax, cl
CODE:00462150 retn
CODE:00462150 sub_46214C endp
CODE:00462154 sub_462154 proc near ; CODE XREF: sub_4625D4+58p
CODE:00462154 ; sub_4625D4+9Fp
CODE:00462154 mov cl, dl
CODE:00462156 ror eax, cl
CODE:00462158 retn
CODE:00462158 sub_462154 endp
CODE:0046215C ; Attributes: library function bp-based frame
CODE:0046215C ; TRC5::Create
CODE:0046215C @TRC5@Create proc near ; CODE XREF: sub_5799FC+2Fp
CODE:0046215C ; DATA XREF: CODE:004620F0o
CODE:0046215C var_C = dword ptr -0Ch
CODE:0046215C var_5 = byte ptr -5
CODE:0046215C var_4 = dword ptr -4
CODE:0046215C push ebp
CODE:0046215D mov ebp, esp
CODE:0046215F add esp, -0Ch
CODE:00462162 test dl, dl
CODE:00462164 jz short loc_46216E
CODE:00462166 add esp, -10h
CODE:00462169 call @@ClassCreate ; __linkproc__ ClassCreate
CODE:0046216E loc_46216E: ; CODE XREF: TRC5::Create+8j
CODE:0046216E mov [ebp+var_C], ecx
CODE:00462171 mov [ebp+var_5], dl
CODE:00462174 mov [ebp+var_4], eax
CODE:00462177 mov ecx, [ebp+var_C]
CODE:0046217A xor edx, edx
CODE:0046217C mov eax, [ebp+var_4]
CODE:0046217F call @TComponent@Create ; TComponent::Create
CODE:00462184 mov eax, [ebp+var_4]
CODE:00462187 mov byte ptr [eax+10082h], 8
CODE:0046218E mov eax, [ebp+var_4]
CODE:00462191 add eax, 10042h
CODE:00462196 mov edx, [ebp+var_4]
CODE:00462199 mov [edx+10088h], eax
CODE:0046219F mov eax, [ebp+var_4]
CODE:004621A2 mov eax, [eax+10088h]
CODE:004621A8 mov edx, [ebp+var_4]
CODE:004621AB mov [edx+1008Ch], eax
CODE:004621B1 mov eax, [ebp+var_4]
CODE:004621B4 mov eax, [eax+10088h]
CODE:004621BA add eax, 4
CODE:004621BD mov edx, [ebp+var_4]
CODE:004621C0 mov [edx+10090h], eax
CODE:004621C6 mov eax, [ebp+var_4]
CODE:004621C9 mov byte ptr [eax+10084h], 8
CODE:004621D0 mov eax, [ebp+var_4]
CODE:004621D3 movzx eax, byte ptr [eax+10084h]
CODE:004621DA add eax, eax
CODE:004621DC add ax, 2
CODE:004621E0 mov edx, [ebp+var_4]
CODE:004621E3 mov [edx+10098h], ax
CODE:004621EA mov eax, [ebp+var_4]
CODE:004621ED movzx eax, word ptr [eax+10098h]
CODE:004621F4 shl eax, 2
CODE:004621F7 call @@GetMem ; __linkproc__ GetMem
CODE:004621FC mov edx, [ebp+var_4]
CODE:004621FF mov [edx+10094h], eax
CODE:00462205 cmp [ebp+var_5], 0
CODE:00462209 jz short loc_462215
CODE:0046220B pop large dword ptr fs:0
CODE:00462212 add esp, 0Ch
CODE:00462215 loc_462215: ; CODE XREF: TRC5::Create+ADj
CODE:00462215 mov eax, [ebp+var_4]
CODE:00462218 mov esp, ebp
CODE:0046221A pop ebp
CODE:0046221B retn
CODE:0046221B @TRC5@Create endp
CODE:0046221C ; TRC5::Destroy
CODE:0046221C @TRC5@Destroy proc near ; DATA XREF: CODE:004620C8o
CODE:0046221C var_5 = byte ptr -5
CODE:0046221C var_4 = dword ptr -4
CODE:0046221C push ebp
CODE:0046221D mov ebp, esp
CODE:0046221F add esp, -8
CODE:00462222 mov [ebp+var_5], dl
CODE:00462225 mov [ebp+var_4], eax
CODE:00462228 mov eax, [ebp+var_4]
CODE:0046222B cmp dword ptr [eax+10094h], 0
CODE:00462232 jz short loc_462251
CODE:00462234 mov eax, [ebp+var_4]
CODE:00462237 movzx eax, word ptr [eax+10098h]
CODE:0046223E mov edx, eax
CODE:00462240 shl edx, 2
CODE:00462243 mov eax, [ebp+var_4]
CODE:00462246 mov eax, [eax+10094h]
CODE:0046224C call @@FreeMem ; __linkproc__ FreeMem
CODE:00462251 loc_462251: ; CODE XREF: TRC5::Destroy+16j
CODE:00462251 mov dl, [ebp+var_5]
CODE:00462254 and dl, 0FEh
CODE:00462257 mov eax, [ebp+var_4]
CODE:0046225A call @TBaseCrypt@Destroy ; TBaseCrypt::Destroy
CODE:0046225F cmp [ebp+var_5], 0
CODE:00462263 jz short loc_46226D
CODE:00462265 mov eax, [ebp+var_4]
CODE:00462268 call @@ClassDestroy ; __linkproc__ ClassDestroy
CODE:0046226D loc_46226D: ; CODE XREF: TRC5::Destroy+47j
CODE:0046226D mov eax, [ebp+var_4]
CODE:00462270 pop ecx
CODE:00462271 pop ecx
CODE:00462272 pop ebp
CODE:00462273 retn
CODE:00462273 @TRC5@Destroy endp
CODE:00462274 sub_462274 proc near ; DATA XREF: CODE:004620FCo
CODE:00462274 var_22 = word ptr -22h
CODE:00462274 var_20 = dword ptr -20h
CODE:00462274 var_1C = dword ptr -1Ch
CODE:00462274 var_18 = dword ptr -18h
CODE:00462274 var_12 = word ptr -12h
CODE:00462274 var_10 = word ptr -10h
CODE:00462274 var_E = word ptr -0Eh
CODE:00462274 var_C = word ptr -0Ch
CODE:00462274 var_A = word ptr -0Ah
CODE:00462274 var_8 = word ptr -8
CODE:00462274 var_6 = word ptr -6
CODE:00462274 var_4 = dword ptr -4
CODE:00462274 push ebp
CODE:00462275 mov ebp, esp
CODE:00462277 add esp, -24h
CODE:0046227A mov [ebp+var_4], eax
CODE:0046227D mov eax, [ebp+var_4]
CODE:00462280 mov eax, [eax+24h]
CODE:00462283 call @@LStrLen ; __linkproc__ LStrLen
CODE:00462288 mov [ebp+var_6], ax
CODE:0046228C mov eax, [ebp+var_4]
CODE:0046228F movzx eax, byte ptr [eax+10084h]
CODE:00462296 add eax, eax
CODE:00462298 add ax, 2
CODE:0046229C mov [ebp+var_8], ax
CODE:004622A0 mov eax, [ebp+var_4]
CODE:004622A3 movzx eax, word ptr [eax+10098h]
CODE:004622AA mov edx, eax
CODE:004622AC shl edx, 2
CODE:004622AF mov eax, [ebp+var_4]
CODE:004622B2 mov eax, [eax+10094h]
CODE:004622B8 call @@FreeMem ; __linkproc__ FreeMem
CODE:004622BD movzx eax, [ebp+var_8]
CODE:004622C1 shl eax, 2
CODE:004622C4 call @@GetMem ; __linkproc__ GetMem
CODE:004622C9 mov edx, [ebp+var_4]
CODE:004622CC mov [edx+10094h], eax
CODE:004622D2 mov ax, [ebp+var_8]
CODE:004622D6 mov edx, [ebp+var_4]
CODE:004622D9 mov [edx+10098h], ax
CODE:004622E0 movzx eax, [ebp+var_6]
CODE:004622E4 test eax, eax
CODE:004622E6 jns short loc_4622EB
CODE:004622E8 add eax, 3
CODE:004622EB loc_4622EB: ; CODE XREF: sub_462274+72j
CODE:004622EB sar eax, 2
CODE:004622EE mov [ebp+var_A], ax
CODE:004622F2 movzx eax, [ebp+var_6]
CODE:004622F6 and eax, 80000003h
CODE:004622FB jns short loc_462302
CODE:004622FD dec eax
CODE:004622FE or eax, 0FFFFFFFCh
CODE:00462301 inc eax
CODE:00462302 loc_462302: ; CODE XREF: sub_462274+87j
CODE:00462302 test eax, eax
CODE:00462304 jz short loc_46230A
CODE:00462306 inc [ebp+var_A]
CODE:0046230A loc_46230A: ; CODE XREF: sub_462274+90j
CODE:0046230A movzx eax, [ebp+var_A]
CODE:0046230E shl eax, 2
CODE:00462311 call @@GetMem ; __linkproc__ GetMem
CODE:00462316 mov [ebp+var_18], eax
CODE:00462319 movzx eax, [ebp+var_A]
CODE:0046231D mov edx, eax
CODE:0046231F shl edx, 2
CODE:00462322 mov eax, [ebp+var_18]
CODE:00462325 xor ecx, ecx
CODE:00462327 call @@FillChar ; __linkproc__ FillChar
CODE:0046232C mov eax, [ebp+var_4]
CODE:0046232F add eax, 24h
CODE:00462332 call @@InternalUniqueString ; __linkproc__ InternalUniqueString
CODE:00462337 movzx ecx, [ebp+var_6]
CODE:0046233B mov edx, [ebp+var_18]
CODE:0046233E call @Move
CODE:00462343 mov eax, [ebp+var_4]
CODE:00462346 mov eax, [eax+10094h]
CODE:0046234C mov dword ptr [eax], 0B7E15163h
CODE:00462352 mov ax, [ebp+var_8]
CODE:00462356 dec eax
CODE:00462357 test ax, ax
CODE:0046235A jbe short loc_462396
CODE:0046235C mov [ebp+var_22], ax
CODE:00462360 mov [ebp+var_C], 1
CODE:00462366 loc_462366: ; CODE XREF: sub_462274+120j
CODE:00462366 movzx eax, [ebp+var_C]
CODE:0046236A mov edx, [ebp+var_4]
CODE:0046236D mov edx, [edx+10094h]
CODE:00462373 mov eax, [edx+eax*4-4]
CODE:00462377 add eax, 9E3779B9h
CODE:0046237C movzx edx, [ebp+var_C]
CODE:00462380 mov ecx, [ebp+var_4]
CODE:00462383 mov ecx, [ecx+10094h]
CODE:00462389 mov [ecx+edx*4], eax
CODE:0046238C inc [ebp+var_C]
CODE:00462390 dec [ebp+var_22]
CODE:00462394 jnz short loc_462366
CODE:00462396 loc_462396: ; CODE XREF: sub_462274+E6j
CODE:00462396 mov [ebp+var_C], 0
CODE:0046239C mov [ebp+var_E], 0
CODE:004623A2 mov [ebp+var_10], 0
CODE:004623A8 xor eax, eax
CODE:004623AA mov [ebp+var_1C], eax
CODE:004623AD xor eax, eax
CODE:004623AF mov [ebp+var_20], eax
CODE:004623B2 mov ax, [ebp+var_A]
CODE:004623B6 cmp ax, [ebp+var_8]
CODE:004623BA jbe short loc_4623C9
CODE:004623BC mov ax, [ebp+var_A]
CODE:004623C0 lea eax, [eax+eax*2]
CODE:004623C3 mov [ebp+var_12], ax
CODE:004623C7 jmp short loc_4623D4
CODE:004623C9 loc_4623C9: ; CODE XREF: sub_462274+146j
CODE:004623C9 mov ax, [ebp+var_8]
CODE:004623CD lea eax, [eax+eax*2]
CODE:004623D0 mov [ebp+var_12], ax
CODE:004623D4 loc_4623D4: ; CODE XREF: sub_462274+153j
CODE:004623D4 ; sub_462274+239j
CODE:004623D4 inc [ebp+var_10]
CODE:004623D8 movzx eax, [ebp+var_C]
CODE:004623DC mov edx, [ebp+var_4]
CODE:004623DF mov edx, [edx+10094h]
CODE:004623E5 mov eax, [edx+eax*4]
CODE:004623E8 add eax, [ebp+var_1C]
CODE:004623EB add eax, [ebp+var_20]
CODE:004623EE movzx edx, [ebp+var_C]
CODE:004623F2 mov ecx, [ebp+var_4]
CODE:004623F5 mov ecx, [ecx+10094h]
CODE:004623FB mov [ecx+edx*4], eax
CODE:004623FE movzx eax, [ebp+var_C]
CODE:00462402 mov edx, [ebp+var_4]
CODE:00462405 mov edx, [edx+10094h]
CODE:0046240B mov eax, [edx+eax*4]
CODE:0046240E mov dl, 3
CODE:00462410 call sub_46214C
CODE:00462415 movzx edx, [ebp+var_C]
CODE:00462419 mov ecx, [ebp+var_4]
CODE:0046241C mov ecx, [ecx+10094h]
CODE:00462422 mov [ecx+edx*4], eax
CODE:00462425 movzx eax, [ebp+var_C]
CODE:00462429 mov edx, [ebp+var_4]
CODE:0046242C mov edx, [edx+10094h]
CODE:00462432 mov eax, [edx+eax*4]
CODE:00462435 mov [ebp+var_1C], eax
CODE:00462438 movzx eax, [ebp+var_E]
CODE:0046243C mov edx, [ebp+var_18]
CODE:0046243F mov eax, [edx+eax*4]
CODE:00462442 add eax, [ebp+var_1C]
CODE:00462445 add eax, [ebp+var_20]
CODE:00462448 movzx edx, [ebp+var_E]
CODE:0046244C mov ecx, [ebp+var_18]
CODE:0046244F mov [ecx+edx*4], eax
CODE:00462452 mov dl, byte ptr [ebp+var_1C]
CODE:00462455 add dl, byte ptr [ebp+var_20]
CODE:00462458 and dl, 1Fh
CODE:0046245B movzx eax, [ebp+var_E]
CODE:0046245F mov ecx, [ebp+var_18]
CODE:00462462 mov eax, [ecx+eax*4]
CODE:00462465 call sub_46214C
CODE:0046246A movzx edx, [ebp+var_E]
CODE:0046246E mov ecx, [ebp+var_18]
CODE:00462471 mov [ecx+edx*4], eax
CODE:00462474 movzx eax, [ebp+var_E]
CODE:00462478 mov edx, [ebp+var_18]
CODE:0046247B mov eax, [edx+eax*4]
CODE:0046247E mov [ebp+var_20], eax
CODE:00462481 movzx eax, [ebp+var_C]
CODE:00462485 inc eax
CODE:00462486 movzx edx, [ebp+var_8]
CODE:0046248A mov ecx, edx
CODE:0046248C cdq
CODE:0046248D idiv ecx
CODE:0046248F mov [ebp+var_C], dx
CODE:00462493 movzx eax, [ebp+var_E]
CODE:00462497 inc eax
CODE:00462498 movzx edx, [ebp+var_A]
CODE:0046249C mov ecx, edx
CODE:0046249E cdq
CODE:0046249F idiv ecx
CODE:004624A1 mov [ebp+var_E], dx
CODE:004624A5 mov ax, [ebp+var_10]
CODE:004624A9 cmp ax, [ebp+var_12]
CODE:004624AD jnz loc_4623D4
CODE:004624B3 movzx eax, [ebp+var_A]
CODE:004624B7 mov edx, eax
CODE:004624B9 shl edx, 2
CODE:004624BC mov eax, [ebp+var_18]
CODE:004624BF xor ecx, ecx
CODE:004624C1 call @@FillChar ; __linkproc__ FillChar
CODE:004624C6 movzx eax, [ebp+var_A]
CODE:004624CA mov edx, eax
CODE:004624CC shl edx, 2
CODE:004624CF mov eax, [ebp+var_18]
CODE:004624D2 call @@FreeMem ; __linkproc__ FreeMem
CODE:004624D7 mov esp, ebp
CODE:004624D9 pop ebp
CODE:004624DA retn
CODE:004624DA sub_462274 endp
CODE:004624DC sub_4624DC proc near ; DATA XREF: CODE:004620F4o
CODE:004624DC var_A = word ptr -0Ah
CODE:004624DC var_8 = word ptr -8
CODE:004624DC var_6 = word ptr -6
CODE:004624DC var_4 = dword ptr -4
CODE:004624DC push ebp
CODE:004624DD mov ebp, esp
CODE:004624DF add esp, -0Ch
CODE:004624E2 mov [ebp+var_4], eax
CODE:004624E5 mov eax, [ebp+var_4]
CODE:004624E8 mov eax, [eax+10094h]
CODE:004624EE mov eax, [eax]
CODE:004624F0 mov edx, [ebp+var_4]
CODE:004624F3 mov edx, [edx+1008Ch]
CODE:004624F9 add [edx], eax
CODE:004624FB mov eax, [ebp+var_4]
CODE:004624FE mov eax, [eax+10094h]
CODE:00462504 mov eax, [eax+4]
CODE:00462507 mov edx, [ebp+var_4]
CODE:0046250A mov edx, [edx+10090h]
CODE:00462510 add [edx], eax
CODE:00462512 mov eax, [ebp+var_4]
CODE:00462515 movzx eax, byte ptr [eax+10084h]
CODE:0046251C test ax, ax
CODE:0046251F jbe loc_4625D0
CODE:00462525 mov [ebp+var_A], ax
CODE:00462529 mov [ebp+var_6], 1
CODE:0046252F loc_46252F: ; CODE XREF: sub_4624DC+EEj
CODE:0046252F mov ax, [ebp+var_6]
CODE:00462533 add eax, eax
CODE:00462535 mov [ebp+var_8], ax
CODE:00462539 mov eax, [ebp+var_4]
CODE:0046253C mov eax, [eax+1008Ch]
CODE:00462542 mov eax, [eax]
CODE:00462544 mov edx, [ebp+var_4]
CODE:00462547 mov edx, [edx+10090h]
CODE:0046254D xor eax, [edx]
CODE:0046254F mov edx, [ebp+var_4]
CODE:00462552 mov edx, [edx+10090h]
CODE:00462558 mov dl, [edx]
CODE:0046255A and dl, 1Fh
CODE:0046255D call sub_46214C
CODE:00462562 movzx edx, [ebp+var_8]
CODE:00462566 mov ecx, [ebp+var_4]
CODE:00462569 mov ecx, [ecx+10094h]
CODE:0046256F add eax, [ecx+edx*4]
CODE:00462572 mov edx, [ebp+var_4]
CODE:00462575 mov edx, [edx+1008Ch]
CODE:0046257B mov [edx], eax
CODE:0046257D mov eax, [ebp+var_4]
CODE:00462580 mov eax, [eax+10090h]
CODE:00462586 mov eax, [eax]
CODE:00462588 mov edx, [ebp+var_4]
CODE:0046258B mov edx, [edx+1008Ch]
CODE:00462591 xor eax, [edx]
CODE:00462593 mov edx, [ebp+var_4]
CODE:00462596 mov edx, [edx+1008Ch]
CODE:0046259C mov dl, [edx]
CODE:0046259E and dl, 1Fh
CODE:004625A1 call sub_46214C
CODE:004625A6 movzx edx, [ebp+var_8]
CODE:004625AA mov ecx, [ebp+var_4]
CODE:004625AD mov ecx, [ecx+10094h]
CODE:004625B3 add eax, [ecx+edx*4+4]
CODE:004625B7 mov edx, [ebp+var_4]
CODE:004625BA mov edx, [edx+10090h]
CODE:004625C0 mov [edx], eax
CODE:004625C2 inc [ebp+var_6]
CODE:004625C6 dec [ebp+var_A]
CODE:004625CA jnz loc_46252F
CODE:004625D0 loc_4625D0: ; CODE XREF: sub_4624DC+43j
CODE:004625D0 mov esp, ebp
CODE:004625D2 pop ebp
CODE:004625D3 retn
CODE:004625D3 sub_4624DC endp
CODE:004625D4 sub_4625D4 proc near ; DATA XREF: CODE:004620F8o
CODE:004625D4 var_8 = word ptr -8
CODE:004625D4 var_6 = word ptr -6
CODE:004625D4 var_4 = dword ptr -4
CODE:004625D4 push ebp
CODE:004625D5 mov ebp, esp
CODE:004625D7 add esp, -8
CODE:004625DA mov [ebp+var_4], eax
CODE:004625DD mov eax, [ebp+var_4]
CODE:004625E0 movzx eax, byte ptr [eax+10084h]
CODE:004625E7 cmp ax, 1
CODE:004625EB jb loc_46269D
CODE:004625F1 mov [ebp+var_6], ax
CODE:004625F5 loc_4625F5: ; CODE XREF: sub_4625D4+C3j
CODE:004625F5 mov ax, [ebp+var_6]
CODE:004625F9 add eax, eax
CODE:004625FB mov [ebp+var_8], ax
CODE:004625FF movzx eax, [ebp+var_8]
CODE:00462603 mov edx, [ebp+var_4]
CODE:00462606 mov edx, [edx+10094h]
CODE:0046260C push dword ptr [edx+eax*4+4]
CODE:00462610 mov eax, [ebp+var_4]
CODE:00462613 mov eax, [eax+10090h]
CODE:00462619 mov eax, [eax]
CODE:0046261B pop edx
CODE:0046261C sub eax, edx
CODE:0046261E mov edx, [ebp+var_4]
CODE:00462621 mov edx, [edx+1008Ch]
CODE:00462627 mov dl, [edx]
CODE:00462629 and dl, 1Fh
CODE:0046262C call sub_462154
CODE:00462631 mov edx, [ebp+var_4]
CODE:00462634 mov edx, [edx+1008Ch]
CODE:0046263A xor eax, [edx]
CODE:0046263C mov edx, [ebp+var_4]
CODE:0046263F mov edx, [edx+10090h]
CODE:00462645 mov [edx], eax
CODE:00462647 movzx eax, [ebp+var_8]
CODE:0046264B mov edx, [ebp+var_4]
CODE:0046264E mov edx, [edx+10094h]
CODE:00462654 push dword ptr [edx+eax*4]
CODE:00462657 mov eax, [ebp+var_4]
CODE:0046265A mov eax, [eax+1008Ch]
CODE:00462660 mov eax, [eax]
CODE:00462662 pop edx
CODE:00462663 sub eax, edx
CODE:00462665 mov edx, [ebp+var_4]
CODE:00462668 mov edx, [edx+10090h]
CODE:0046266E mov dl, [edx]
CODE:00462670 and dl, 1Fh
CODE:00462673 call sub_462154
CODE:00462678 mov edx, [ebp+var_4]
CODE:0046267B mov edx, [edx+10090h]
CODE:00462681 xor eax, [edx]
CODE:00462683 mov edx, [ebp+var_4]
CODE:00462686 mov edx, [edx+1008Ch]
CODE:0046268C mov [edx], eax
CODE:0046268E dec [ebp+var_6]
CODE:00462692 cmp [ebp+var_6], 0
CODE:00462697 jnz loc_4625F5
CODE:0046269D loc_46269D: ; CODE XREF: sub_4625D4+17j
CODE:0046269D mov eax, [ebp+var_4]
CODE:004626A0 mov eax, [eax+10094h]
CODE:004626A6 mov eax, [eax+4]
CODE:004626A9 mov edx, [ebp+var_4]
CODE:004626AC mov edx, [edx+10090h]
CODE:004626B2 sub [edx], eax
CODE:004626B4 mov eax, [ebp+var_4]
CODE:004626B7 mov eax, [eax+10094h]
CODE:004626BD mov eax, [eax]
CODE:004626BF mov edx, [ebp+var_4]
CODE:004626C2 mov edx, [edx+1008Ch]
CODE:004626C8 sub [edx], eax
CODE:004626CA pop ecx
CODE:004626CB pop ecx
CODE:004626CC pop ebp
CODE:004626CD retn
CODE:004626CD sub_4625D4 endp
CODE:004626D0 ; TRC5::Finalization
CODE:004626D0 @TRC5@Finalization proc near ; DATA XREF: CODE:0059B4E4o
CODE:004626D0 push ebp
CODE:004626D1 mov ebp, esp
CODE:004626D3 xor eax, eax
CODE:004626D5 push ebp
CODE:004626D6 push offset loc_4626F5
CODE:004626DB push dword ptr fs:[eax]
CODE:004626DE mov fs:[eax], esp
CODE:004626E1 inc ds:dword_5A47DC
CODE:004626E7 xor eax, eax
CODE:004626E9 pop edx
CODE:004626EA pop ecx
CODE:004626EB pop ecx
CODE:004626EC mov fs:[eax], edx
CODE:004626EF push offset loc_4626FC
CODE:004626F4 locret_4626F4: ; CODE XREF: TRC5::Finalization+2Aj
CODE:004626F4 retn
CODE:004626F5 loc_4626F5: ; DATA XREF: TRC5::Finalization+6o
CODE:004626F5 jmp @@HandleFinally ; __linkproc__ HandleFinally
CODE:004626FA jmp short locret_4626F4
CODE:004626FC loc_4626FC: ; CODE XREF: TRC5::Finalization:locret_4626F4j
CODE:004626FC ; DATA XREF: TRC5::Finalization+1Fo
CODE:004626FC pop ebp
CODE:004626FD retn
CODE:004626FD @TRC5@Finalization endp ; sp = -4
CODE:00462700 ; TRC5::Initialization
CODE:00462700 @TRC5@Initialization proc near ; DATA XREF: CODE:0059B4E0o
CODE:00462700 sub ds:dword_5A47DC, 1
CODE:00462707 retn
CODE:00462707 @TRC5@Initialization endp
[注意]传递专业知识、拓宽行业人脉——看雪讲师团队等你加入!