Function at 0x57ffa0
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
add esp, 0xffffffe4
push ebx
push esi
push edi
xor ebx, ebx
mov dword [ebp - 0x1c], ebx
mov dword [ebp - 0x18], ebx
mov dword [ebp - 8], ecx
mov dword [ebp - 4], edx
mov eax, dword [ebp - 4]
call sub.rtl70.bpl__System__LStrAddRef_qqrpv
xor eax, eax
push ebp
push 0x5801b2
push dword fs:[eax]
mov dword fs:[eax], esp
mov eax, 0x400
call sub.rtl70.bpl__System__GetMem_qqri
mov dword [sym.P_Interface.bpl__Skht30_wg_myresult], eax
mov eax, 0x400
call sub.rtl70.bpl__System__GetMem_qqri
mov dword [ebp - 0x10], eax
mov eax, 0x10
call sub.rtl70.bpl__System__GetMem_qqri
mov dword [ebp - 0x14], eax
mov dl, 1
mov eax, dword [sym.imp.PCommonUtil.bpl__Base64_TBase64_]
call sub.rtl70.bpl__System_TObject__bctr_qqrv
mov dword [ebp - 0xc], eax
xor eax, eax
push ebp
push 0x580188
push dword fs:[eax]
mov dword fs:[eax], esp
mov eax, dword [ebp - 4]
call sub.rtl70.bpl__System__LStrLen_qqrx17System_AnsiString
push eax
lea eax, [ebp - 4]
call sub.rtl70.bpl__System__UniqueStringA_qqrr17System_AnsiString
mov edx, eax
mov ecx, dword [sym.P_Interface.bpl__Skht30_wg_myresult]
mov eax, dword [ebp - 0xc]
call sub.PCommonUtil.bpl__Base64_TBase64_Base64Decode_qqrpvt1i
mov edx, dword [sym.P_Interface.bpl__Skht30_wg_myresult]
mov eax, dword [sym.P_Interface.bpl__Skht30_wg_myresult]
add eax, 0xc
mov ecx, 0x3f4
call sub.rtl70.bpl__System_Move_qqrpxvpvi
mov edx, dword [ebp - 0x10]
mov eax, dword [sym.P_Interface.bpl__Skht30_wg_myresult]
mov ecx, 0x400
call sub.rtl70.bpl__System_Move_qqrpxvpvi
mov edx, dword [ebp - 0x14]
mov eax, sym.P_Interface.bpl__Skht30_wg_fir_key
mov ecx, 0x10
call sub.rtl70.bpl__System_Move_qqrpxvpvi
lea eax, [ebp - 4]
call sub.rtl70.bpl__System__LStrClr_qqrpv
xor edi, edi
mov edx, 0x400
mov eax, dword [sym.P_Interface.bpl__Skht30_wg_myresult]
call fcn.004021cc
mov eax, edi
shl eax, 4
mov edx, dword [ebp - 0x10]
add edx, eax
mov eax, sym.P_Interface.bpl__Skht30_wg_key
call fcn.0057d9b8
xor esi, esi
mov eax, dword [ebp - 0x14]
mov bl, byte [eax + esi]
mov eax, dword [sym.P_Interface.bpl__Skht30_wg_myresult]
xor bl, byte [eax + esi]
lea eax, [ebp - 0x18]
mov edx, ebx
call sub.rtl70.bpl__System__LStrFromChar_qqrr17System_AnsiStringc
mov edx, dword [ebp - 0x18]
lea eax, [ebp - 4]
call sub.rtl70.bpl__System__LStrCat_qqrv
inc esi
cmp esi, 0x10
jne 0x58009f
mov eax, edi
shl eax, 4
mov edx, dword [ebp - 0x10]
lea eax, [edx + eax]
mov edx, dword [ebp - 0x14]
mov ecx, 0x10
call sub.rtl70.bpl__System_Move_qqrpxvpvi
inc edi
cmp edi, 7
jne 0x58007a
mov eax, dword [ebp - 8]
mov edx, dword [ebp - 4]
call sub.rtl70.bpl__System__LStrAsg_qqrpvpxv
lea eax, [ebp - 4]
call sub.rtl70.bpl__System__LStrClr_qqrpv
mov eax, dword [ebp - 8]
mov eax, dword [eax]
call sub.rtl70.bpl__System__LStrLen_qqrx17System_AnsiString
mov edi, eax
test edi, edi
jle 0x58014d
mov esi, 1
mov eax, dword [ebp - 8]
mov eax, dword [eax]
mov bl, byte [eax + esi - 1]
mov eax, ebx
add al, 0xd6
sub al, 2
jb 0x580131
sub al, 1
je 0x580131
add al, 0xfe
sub al, 0xb
jb 0x580131
sub al, 2
je 0x580131
sub al, 2
jne 0x580149
lea eax, [ebp - 0x1c]
mov edx, dword [ebp - 8]
mov edx, ebx
call sub.rtl70.bpl__System__LStrFromChar_qqrr17System_AnsiStringc
mov edx, dword [ebp - 0x1c]
lea eax, [ebp - 4]
call sub.rtl70.bpl__System__LStrCat_qqrv
inc esi
dec edi
jne 0x58010e
mov eax, dword [ebp - 8]
mov edx, dword [ebp - 4]
call sub.rtl70.bpl__System__LStrAsg_qqrpvpxv
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x58018f
mov eax, dword [sym.P_Interface.bpl__Skht30_wg_myresult]
call sub.rtl70.bpl__System__FreeMem_qqrpv
mov eax, dword [ebp - 0x10]
call sub.rtl70.bpl__System__FreeMem_qqrpv
mov eax, dword [ebp - 0x14]
call sub.rtl70.bpl__System__FreeMem_qqrpv
mov eax, dword [ebp - 0xc]
call sub.rtl70.bpl__System_TObject_Free_qqrv
ret