Function at 0x53daf0
Capabilities:
Encode data using xor

Disassembly:
push 0xffffffffffffffff
push 0x68e6ac
mov eax, dword fs:[0]
push eax
sub esp, 0x8c4
mov eax, dword [0x78f694]
xor eax, esp
mov dword [esp + 0x8c0], eax
push ebx
push ebp
push esi
push edi
mov eax, dword [0x78f694]
xor eax, esp
push eax
lea eax, [esp + 0x8d8]
mov dword fs:[0], eax
mov edi, dword [esp + 0x8f0]
mov esi, dword [esp + 0x8f4]
mov ebx, dword [esp + 0x8e8]
mov ebp, dword [esp + 0x8ec]
mov ecx, edi
mov dword [esp + 0x2c], edi
mov dword [esp + 0x24], esi
call fcn.00467d60
lea ecx, [esp + 0xdc]
call fcn.00538480
lea ecx, [esp + 0x4c]
mov dword [esp + 0x8e0], 0
call fcn.005388e0
lea ecx, [esp + 0x36c]
mov byte [esp + 0x8e0], 1
call fcn.0053b9f0
push ebx
lea ecx, [esp + 0x60]
mov byte [esp + 0x8e4], 2
mov dword [esp + 0x54], 1
call fcn.0046ad20
lea ecx, [esp + 0x5c]
call fcn.00544a30
add eax, eax
add eax, eax
add eax, eax
push esi
mov dword [esp + 0x5c], eax
lea eax, [esp + 0x370]
push eax
lea ecx, [esp + 0x54]
push ecx
mov ebx, 3
push 0
lea ecx, [esp + 0xec]
mov dword [esp + 0x64], ebx
call fcn.005390a0
lea ecx, [esp + 0x30]
call fcn.00468060
push ebp
lea ecx, [esp + 0x34]
mov byte [esp + 0x8e4], bl
call fcn.0046ad20
lea ecx, [esp + 0x30]
call fcn.00544a30
mov ebx, eax
cmp ebx, 0x10
jb 0x53dde6
test bl, 7
jne 0x53dde6
shr ebx, 3
sub ebx, 1
lea esi, [ebx*8]
push esi
push 0
mov ecx, edi
mov dword [esp + 0x28], ebx
mov dword [esp + 0x30], esi
call fcn.00468e60
lea ecx, [esp + 0x30]
call fcn.00467d80
mov ecx, edi
mov ebx, eax
call fcn.00467d80
mov ebp, dword [ebx]
mov edi, dword [ebx + 4]
push esi
add ebx, 8
push ebx
push eax
mov dword [esp + 0x28], eax
mov dword [esp + 0x8d8], ebp
mov dword [esp + 0x8dc], edi
call fcn.00630200
mov edx, dword [esp + 0x28]
lea eax, [esi + edx - 8]
add esp, 0xc
mov dword [esp + 0x18], 5
mov dword [esp + 0x1c], eax
mov ebx, dword [esp + 0x20]
mov esi, dword [esp + 0x1c]
mov eax, ebx
cmp eax, 1
jl 0x53dd10
imul byte [esp + 0x18]
mov byte [esp + 0x17], al
mov cl, byte [esp + 0x17]
mov eax, dword [esi]
add cl, bl
mov edx, edi
shr edx, 0x18
xor cl, dl
mov dword [esp + 0x8c0], edi
mov byte [esp + 0x8c3], cl
mov ecx, dword [esi + 4]
lea edx, [esp + 0x8bc]
mov dword [esp + 0x8c4], eax
push edx
mov eax, edx
mov dword [esp + 0x8cc], ecx
push eax
lea ecx, [esp + 0xe4]
mov dword [esp + 0x8c4], ebp
call fcn.0053a9f0
mov ecx, dword [esp + 0x8c4]
mov edx, dword [esp + 0x8c8]
mov ebp, dword [esp + 0x8bc]
mov edi, dword [esp + 0x8c0]
mov dword [esi], ecx
mov dword [esi + 4], edx
sub ebx, 1
sub esi, 8
cmp ebx, 1
jge 0x53dc98
sub dword [esp + 0x18], 1
jns 0x53dc7d
mov dword [esp + 0x8d0], edi
mov edi, dword [esp + 0x2c]
mov ecx, edi
mov dword [esp + 0x8cc], ebp
mov bl, 1
call fcn.00544a30
cmp eax, dword [esp + 0x28]
je 0x53dd64
mov esi, dword [esp + 0x24]
mov eax, dword [esi]
mov edx, dword [eax + 0x14]
push str.Output_is_not_the_expected_size.
mov ecx, esi
call edx
mov ecx, edi
call fcn.00544a30
push eax
push str.outNumBytes
mov ecx, esi
call fcn.004b14c0
jmp 0x53dd93
xor eax, eax
mov cl, 0xa6
jmp 0x53dd70
cmp byte [esp + eax + 0x8cc], cl
jne 0x53dd83
add eax, 1
cmp eax, 8
jl 0x53dd70
jmp 0x53dd95
mov ecx, dword [esp + 0x24]
mov eax, dword [ecx]
mov edx, dword [eax + 0x14]
push str.KEK_is_not_the_correct_key.
call edx
xor bl, bl
lea ecx, [esp + 0x30]
mov byte [esp + 0x8e0], 2
call fcn.00468860
lea ecx, [esp + 0x36c]
mov byte [esp + 0x8e0], 1
call fcn.00538820
lea ecx, [esp + 0x4c]
mov byte [esp + 0x8e0], 0
call fcn.00538990
lea ecx, [esp + 0xdc]
mov dword [esp + 0x8e0], 0xffffffff
call fcn.00538500
mov al, bl
jmp 0x53de50
mov eax, dword [esi]
mov edx, dword [eax + 0x14]
push str.Key_data_must_be_a_multiple_of_8_bytes_in_length.
mov ecx, esi
call edx
push ebx
push str.keyDataLen
mov ecx, esi
call fcn.004b14c0
lea ecx, [esp + 0x30]
mov byte [esp + 0x8e0], 2
call fcn.00468860
lea ecx, [esp + 0x36c]
mov byte [esp + 0x8e0], 1
call fcn.00538820
lea ecx, [esp + 0x4c]
mov byte [esp + 0x8e0], 0
call fcn.00538990
lea ecx, [esp + 0xdc]
mov dword [esp + 0x8e0], 0xffffffff
call fcn.00538500
xor al, al
mov ecx, dword [esp + 0x8d8]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebp
pop ebx
mov ecx, dword [esp + 0x8c0]
xor ecx, esp
call fcn.0062cbd3
add esp, 0x8d0
ret