Function at 0x45317c
Capabilities:
Encode data using xor
Encrypt data using aes
Reference aes constants

Disassembly:
push ebp
mov ebp, esp
add esp, 0xffffffdc
push ebx
push esi
push edi
xor ecx, ecx
mov dword [ebp - 8], ecx
mov dword [ebp - 4], edx
mov ebx, eax
mov eax, dword [ebp - 4]
call sub.rtl170.bpl__System__DynArrayAddRef_qqrpv
xor eax, eax
push ebp
push 0x4536c7
push dword fs:[eax]
mov dword fs:[eax], esp
mov eax, dword [ebp - 4]
call sub.rtl170.bpl__System__DynArrayLength_qqrpxv
test eax, eax
jns 0x4531b4
add eax, 3
sar eax, 2
mov dword [ebp - 0x18], eax
movzx eax, byte [ebp - 0x18]
add al, 6
mov byte [ebx + 0x14], al
push 4
mov eax, dword [ebp - 0x18]
push eax
lea eax, [ebp - 8]
mov ecx, 2
mov edx, dword [0x449f08]
call sub.rtl170.bpl__System__DynArraySetLength_qqrv
add esp, 8
mov eax, dword [ebp - 0x18]
dec eax
test eax, eax
jl 0x45321e
inc eax
mov dword [ebp - 0x24], eax
mov dword [ebp - 0xc], 0
xor esi, esi
mov eax, dword [ebp - 0xc]
add eax, eax
add eax, eax
add eax, esi
mov edx, dword [ebp - 4]
movzx eax, byte [edx + eax]
mov edx, dword [ebp - 8]
mov ecx, dword [ebp - 0xc]
mov edx, dword [edx + ecx*4]
mov byte [edx + esi], al
inc esi
cmp esi, 4
jne 0x4531f4
inc dword [ebp - 0xc]
dec dword [ebp - 0x24]
jne 0x4531f2
xor eax, eax
mov dword [ebp - 0x10], eax
xor esi, esi
xor eax, eax
mov dword [ebp - 0x14], eax
push 4
movzx eax, byte [ebx + 0x14]
inc eax
push eax
lea eax, [ebx + 0x1c]
mov ecx, 2
mov edx, dword [0x449f64]
call sub.rtl170.bpl__System__DynArraySetLength_qqrv
add esp, 8
push 4
movzx eax, byte [ebx + 0x14]
inc eax
push eax
lea eax, [ebx + 0x18]
mov ecx, 2
mov edx, dword [0x449f64]
call sub.rtl170.bpl__System__DynArraySetLength_qqrv
add esp, 8
jmp 0x4532b3
mov ecx, dword [ebp - 0x14]
mov edx, dword [ebp - 8]
mov eax, ebx
call fcn.00452fa4
mov dword [ebp - 0x1c], eax
mov eax, dword [ebx + 0x1c]
mov edx, dword [ebp - 0x10]
mov eax, dword [eax + edx*4]
mov edx, dword [ebp - 0x1c]
mov dword [eax + esi*4], edx
mov eax, dword [ebx + 0x18]
mov edx, dword [ebp - 0x10]
mov eax, dword [eax + edx*4]
mov edx, dword [ebp - 0x1c]
mov dword [eax + esi*4], edx
inc dword [ebp - 0x14]
inc esi
mov eax, dword [ebp - 0x14]
cmp eax, dword [ebp - 0x18]
jge 0x4532a9
cmp esi, 4
jl 0x45326a
cmp esi, 4
jne 0x4532b3
xor esi, esi
inc dword [ebp - 0x10]
mov eax, dword [ebp - 0x14]
cmp eax, dword [ebp - 0x18]
jge 0x4532c5
movzx eax, byte [ebx + 0x14]
inc eax
cmp eax, dword [ebp - 0x10]
jg 0x45329c
xor eax, eax
mov dword [ebp - 0x20], eax
jmp 0x4535e4
mov eax, dword [ebp - 8]
mov edx, dword [ebp - 0x18]
mov eax, dword [eax + edx*4 - 4]
movzx eax, byte [eax + 1]
movzx eax, byte [eax + 0x5ddf98]
mov edx, dword [ebp - 8]
mov edx, dword [edx]
xor byte [edx], al
mov eax, dword [ebp - 8]
mov edx, dword [ebp - 0x18]
mov eax, dword [eax + edx*4 - 4]
movzx eax, byte [eax + 2]
movzx eax, byte [eax + 0x5ddf98]
mov edx, dword [ebp - 8]
mov edx, dword [edx]
xor byte [edx + 1], al
mov eax, dword [ebp - 8]
mov edx, dword [ebp - 0x18]
mov eax, dword [eax + edx*4 - 4]
movzx eax, byte [eax + 3]
movzx eax, byte [eax + 0x5ddf98]
mov edx, dword [ebp - 8]
mov edx, dword [edx]
xor byte [edx + 2], al
mov eax, dword [ebp - 8]
mov edx, dword [ebp - 0x18]
mov eax, dword [eax + edx*4 - 4]
movzx eax, byte [eax]
movzx eax, byte [eax + 0x5ddf98]
mov edx, dword [ebp - 8]
mov edx, dword [edx]
xor byte [edx + 3], al
mov eax, dword [ebp - 0x20]
movzx eax, byte [eax + 0x5de098]
mov edx, dword [ebp - 8]
mov edx, dword [edx]
xor byte [edx], al
inc dword [ebp - 0x20]
mov ecx, 1
mov edx, dword [ebp - 8]
mov eax, ebx
call fcn.00452fa4
mov edi, eax
xor ecx, ecx
mov edx, dword [ebp - 8]
mov eax, ebx
call fcn.00452fa4
xor edi, eax
push edi
mov ecx, 1
mov edx, dword [ebp - 8]
mov eax, ebx
call fcn.00453004
mov ecx, 2
mov edx, dword [ebp - 8]
mov eax, ebx
call fcn.00452fa4
mov edi, eax
mov ecx, 1
mov edx, dword [ebp - 8]
mov eax, ebx
call fcn.00452fa4
xor edi, eax
push edi
mov ecx, 2
mov edx, dword [ebp - 8]
mov eax, ebx
call fcn.00453004
mov ecx, 3
mov edx, dword [ebp - 8]
mov eax, ebx
call fcn.00452fa4
mov edi, eax
mov ecx, 2
mov edx, dword [ebp - 8]
mov eax, ebx
call fcn.00452fa4
xor edi, eax
push edi
mov ecx, 3
mov edx, dword [ebp - 8]
mov eax, ebx
call fcn.00453004
mov eax, dword [ebp - 0x18]
sub eax, 4
je 0x453580
sub eax, 2
je 0x453504
sub eax, 2
jne 0x45356a
mov eax, dword [ebp - 8]
mov eax, dword [eax + 0xc]
movzx eax, byte [eax]
movzx eax, byte [eax + 0x5ddf98]
mov edx, dword [ebp - 8]
mov edx, dword [edx + 0x10]
xor byte [edx], al
mov eax, dword [ebp - 8]
mov eax, dword [eax + 0xc]
movzx eax, byte [eax + 1]
movzx eax, byte [eax + 0x5ddf98]
mov edx, dword [ebp - 8]
mov edx, dword [edx + 0x10]
xor byte [edx + 1], al
mov eax, dword [ebp - 8]
mov eax, dword [eax + 0xc]
movzx eax, byte [eax + 2]
movzx eax, byte [eax + 0x5ddf98]
mov edx, dword [ebp - 8]
mov edx, dword [edx + 0x10]
xor byte [edx + 2], al
mov eax, dword [ebp - 8]
mov eax, dword [eax + 0xc]
movzx eax, byte [eax + 3]
movzx eax, byte [eax + 0x5ddf98]
mov edx, dword [ebp - 8]
mov edx, dword [edx + 0x10]
xor byte [edx + 3], al
mov ecx, 5
mov edx, dword [ebp - 8]
mov eax, ebx
call fcn.00452fa4
mov edi, eax
mov ecx, 4
mov edx, dword [ebp - 8]
mov eax, ebx
call fcn.00452fa4
xor edi, eax
push edi
mov ecx, 5
mov edx, dword [ebp - 8]
mov eax, ebx
call fcn.00453004
mov ecx, 6
mov edx, dword [ebp - 8]
mov eax, ebx
call fcn.00452fa4
mov edi, eax
mov ecx, 5
mov edx, dword [ebp - 8]
mov eax, ebx
call fcn.00452fa4
xor edi, eax
push edi
mov ecx, 6
mov edx, dword [ebp - 8]
mov eax, ebx
call fcn.00453004
mov ecx, 7
mov edx, dword [ebp - 8]
mov eax, ebx
call fcn.00452fa4
mov edi, eax
mov ecx, 6
mov edx, dword [ebp - 8]
mov eax, ebx
call fcn.00452fa4
xor edi, eax
push edi
mov ecx, 7
mov edx, dword [ebp - 8]
mov eax, ebx
call fcn.00453004
jmp 0x453580
mov ecx, 4
mov edx, dword [ebp - 8]
mov eax, ebx
call fcn.00452fa4
mov edi, eax
mov ecx, 3
mov edx, dword [ebp - 8]
mov eax, ebx
call fcn.00452fa4
xor edi, eax
push edi
mov ecx, 4
mov edx, dword [ebp - 8]
mov eax, ebx
call fcn.00453004
mov ecx, 5
mov edx, dword [ebp - 8]
mov eax, ebx
call fcn.00452fa4
mov edi, eax
mov ecx, 4
mov edx, dword [ebp - 8]
mov eax, ebx
call fcn.00452fa4
xor edi, eax
push edi
mov ecx, 5
mov edx, dword [ebp - 8]
mov eax, ebx
call fcn.00453004
jmp 0x453580
mov ecx, 0x4536e4
mov dl, 1
mov eax, dword [sym.imp.rtl170.bpl__System_Sysutils_Exception_]
call sub.rtl170.bpl__System_Sysutils_Exception__bctr_qqrx20System_UnicodeString
call sub.rtl170.bpl__System__RaiseExcept_qqrv
xor eax, eax
mov dword [ebp - 0x14], eax
jmp 0x4535d2
mov ecx, dword [ebp - 0x14]
mov edx, dword [ebp - 8]
mov eax, ebx
call fcn.00452fa4
mov dword [ebp - 0x1c], eax
mov eax, dword [ebx + 0x1c]
mov edx, dword [ebp - 0x10]
mov eax, dword [eax + edx*4]
mov edx, dword [ebp - 0x1c]
mov dword [eax + esi*4], edx
mov eax, dword [ebx + 0x18]
mov edx, dword [ebp - 0x10]
mov eax, dword [eax + edx*4]
mov edx, dword [ebp - 0x1c]
mov dword [eax + esi*4], edx
inc dword [ebp - 0x14]
inc esi
mov eax, dword [ebp - 0x14]
cmp eax, dword [ebp - 0x18]
jge 0x4535c8
cmp esi, 4
jl 0x453589
cmp esi, 4
jne 0x4535d2
inc dword [ebp - 0x10]
xor esi, esi
mov eax, dword [ebp - 0x14]
cmp eax, dword [ebp - 0x18]
jge 0x4535e4
movzx eax, byte [ebx + 0x14]
inc eax
cmp eax, dword [ebp - 0x10]
jg 0x4535bb
movzx eax, byte [ebx + 0x14]
inc eax
cmp eax, dword [ebp - 0x10]
jg 0x4532cf
movzx eax, byte [ebx + 0x14]
dec eax
test eax, eax
jle 0x45369d
mov dword [ebp - 0x24], eax
mov dword [ebp - 0xc], 1
xor esi, esi
mov eax, dword [ebx + 0x18]
mov edx, dword [ebp - 0xc]
mov eax, dword [eax + edx*4]
mov eax, dword [eax + esi*4]
mov dword [ebp - 0x1c], eax
xor ecx, ecx
mov edx, dword [ebp - 0x1c]
mov eax, ebx
call fcn.00453150
movzx eax, al
mov edi, dword [eax*4 + 0x5dad98]
mov ecx, 1
mov edx, dword [ebp - 0x1c]
mov eax, ebx
call fcn.00453150
movzx eax, al
xor edi, dword [eax*4 + 0x5db198]
mov ecx, 2
mov edx, dword [ebp - 0x1c]
mov eax, ebx
call fcn.00453150
movzx eax, al
xor edi, dword [eax*4 + 0x5db598]
mov ecx, 3
mov edx, dword [ebp - 0x1c]
mov eax, ebx
call fcn.00453150
movzx eax, al
xor edi, dword [eax*4 + 0x5db998]
mov eax, dword [ebx + 0x18]
mov edx, dword [ebp - 0xc]
mov eax, dword [eax + edx*4]
mov dword [eax + esi*4], edi
inc esi
cmp esi, 4
jne 0x45360b
inc dword [ebp - 0xc]
dec dword [ebp - 0x24]
jne 0x453609
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x4536ce
lea eax, [ebp - 8]
mov edx, dword [0x449f08]
call sub.rtl170.bpl__System__DynArrayClear_qqrrpvpv
lea eax, [ebp - 4]
mov edx, dword [0x418ccc]
call sub.rtl170.bpl__System__DynArrayClear_qqrrpvpv
ret