Function at 0x10104c70
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff8
sub esp, 0x80
mov edx, dword [ebp + 8]
mov esi, dword [ebp + 0x20]
mov eax, dword [edx]
mov ecx, dword [edx + 4]
mov ebx, dword [edx + 0xc]
mov edx, dword [edx + 8]
test esi, 0xfffffff0
bswap edx
bswap eax
bswap ecx
bswap ebx
mov dword [esp + 4], edx
je 0x10104eac
mov edx, esi
mov esi, dword [ebp + 0x18]
mov edi, dword [ebp + 0x14]
and edx, 0xfffffff0
neg edx
xor esi, dword [ebp + 0x10]
xor edi, dword [ebp + 0xc]
mov dword [esp + 0x2c], esi
mov esi, dword [ebp + 0x1c]
mov dword [esp + 0x30], edi
add esi, 8
nop dword [eax]
mov dword [esp + 0x44], edx
mov edx, dword [esi]
mov dword [esp + 0x14], esi
bswap edx
xor edx, dword [esp + 4]
mov dword [esp + 0xc], edx
mov edx, dword [esi + 4]
bswap edx
xor edx, ebx
mov ebx, edx
mov dword [esp + 4], edx
mov edx, dword [esp + 0x14]
mov esi, dword [edx - 8]
mov edx, dword [esp + 0x14]
mov edi, dword [edx - 4]
bswap esi
mov edx, ebx
xor esi, eax
bswap edi
xor edi, ecx
lea ecx, [esp + 0x68]
push dword [ebp + 0x18]
push dword [ebp + 0x14]
mov ebx, dword [esp + 0x14]
push ebx
call fcn.101046f0
add esp, 0xc
mov eax, dword [esp + 0x74]
lea ecx, [esp + 0x58]
mov edx, edi
mov dword [esp + 0x28], eax
mov eax, dword [esp + 0x70]
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0x68]
mov dword [esp + 8], eax
mov eax, dword [esp + 0x6c]
mov dword [esp + 0x10], eax
push dword [ebp + 0x10]
push dword [ebp + 0xc]
push esi
call fcn.101046f0
add esp, 0xc
mov eax, dword [esp + 0x60]
xor edi, dword [esp + 4]
xor esi, ebx
lea ecx, [esp + 0x48]
mov dword [esp + 0x24], eax
mov edx, edi
mov eax, dword [esp + 0x64]
mov dword [esp + 0x20], eax
mov eax, dword [esp + 0x58]
mov dword [esp + 0x1c], eax
mov ebx, dword [esp + 0x5c]
mov dword [esp + 4], ebx
push dword [esp + 0x2c]
push dword [esp + 0x34]
push esi
call fcn.101046f0
add esp, 0xc
mov edx, dword [esp + 8]
mov edi, dword [esp + 0x10]
mov eax, edx
mov ecx, edx
mov esi, edi
shl eax, 0x1f
shl ecx, 0x1e
xor ecx, eax
mov eax, edx
shl eax, 0x19
xor eax, ecx
mov ecx, edi
xor ecx, dword [esp + 0x28]
xor eax, dword [esp + 0x4c]
xor ecx, ebx
mov ebx, dword [esp + 0x18]
xor ecx, eax
mov eax, dword [esp + 0x48]
mov dword [esp + 0x38], ecx
xor ebx, dword [esp + 0x1c]
xor eax, edx
mov edx, edi
shr edx, 1
xor ebx, eax
mov eax, edi
shr eax, 2
mov dword [esp + 0xc], ebx
xor eax, edx
mov edx, edi
mov edi, ebx
mov dword [esp + 0x34], eax
mov eax, dword [esp + 8]
shl edi, 0x1f
shld esi, eax, 0x1f
shld edx, eax, 0x1e
mov eax, ecx
xor edx, esi
mov esi, ebx
shld eax, ebx, 0x1e
shl esi, 0x1e
xor esi, edi
mov edi, ecx
shld edi, ebx, 0x1f
mov ebx, dword [esp + 0x18]
xor eax, edi
mov edi, ecx
mov dword [esp + 0x40], eax
mov eax, ecx
shr edi, 1
mov ecx, dword [esp + 0x10]
shr eax, 2
xor eax, edi
mov edi, dword [esp + 8]
xor ebx, dword [esp + 8]
mov dword [esp + 0x3c], eax
mov eax, ecx
shld eax, edi, 0x19
xor ebx, dword [esp + 0x24]
mov edi, eax
xor edi, edx
mov edx, ecx
mov ecx, dword [esp + 0x38]
shr edx, 7
xor edx, dword [esp + 0x34]
xor ebx, dword [esp + 0x1c]
mov eax, ecx
shr eax, 7
xor edx, dword [esp + 0x54]
xor eax, dword [esp + 0x20]
xor eax, dword [esp + 0x3c]
xor edx, esi
mov esi, dword [esp + 0xc]
xor eax, ecx
shld ecx, esi, 0x19
xor ecx, dword [esp + 0x24]
xor ecx, dword [esp + 0x40]
xor ecx, esi
shl esi, 0x19
xor esi, dword [esp + 0x28]
xor esi, dword [esp + 0x10]
xor esi, edx
mov edx, dword [esp + 4]
xor edx, dword [esp + 0x20]
xor edx, esi
mov esi, dword [esp + 0x14]
mov dword [esp + 4], edx
mov edx, dword [esp + 0x44]
xor edi, dword [esp + 0x50]
add esi, 0x10
xor ebx, edi
add edx, 0x10
jne 0x10104cd0
mov edi, dword [esp + 4]
mov edx, dword [ebp + 8]
bswap eax
bswap ecx
bswap ebx
bswap edi
mov dword [edx + 4], ecx
mov dword [edx], eax
mov dword [edx + 0xc], ebx
mov dword [edx + 8], edi
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret