Function at 0x40b354
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x2c
mov ecx, dword [eax]
mov edx, dword [eax + 0x10]
and dword [ebp - 8], 0
mov dword [ebp - 4], ecx
mov ecx, dword [eax + 8]
mov dword [ebp - 0xc], ecx
mov ecx, dword [eax + 0xc]
mov dword [ebp - 0x1c], ecx
mov ecx, dword [eax + 0x14]
mov dword [ebp - 0x14], ecx
mov ecx, dword [eax + 0x18]
mov dword [ebp - 0x10], ecx
mov ecx, dword [eax + 0x1c]
push ebx
push esi
mov esi, dword [eax + 4]
mov dword [ebp - 0x18], ecx
mov ecx, dword [ebp + 8]
push edi
mov dword [ebp - 0x28], ecx
mov ecx, dword [ebp - 8]
mov edi, dword [ebp - 0x28]
shl ecx, 2
mov dword [ebp - 0x24], ecx
add ecx, edi
mov edi, dword [ebp + 8]
mov edi, dword [edi]
mov dword [ecx], edi
mov dword [ebp - 0x20], ecx
mov ecx, edx
shl ecx, 0x15
mov edi, edx
shr edi, 0xb
or ecx, edi
mov edi, edx
shl edi, 0x1a
mov ebx, edx
shr ebx, 6
or edi, ebx
xor ecx, edi
mov edi, edx
shr edi, 0x19
mov ebx, edx
shl ebx, 7
or edi, ebx
xor ecx, edi
mov edi, dword [ebp - 0x10]
xor edi, dword [ebp - 0x14]
mov ebx, dword [ebp - 4]
and edi, edx
xor edi, dword [ebp - 0x10]
shr ebx, 0xd
add ecx, edi
mov edi, dword [ebp - 0x24]
add ecx, dword [edi + 0x4195d8]
mov edi, dword [ebp - 0x20]
add ecx, dword [edi]
mov edi, dword [ebp - 4]
add ecx, dword [ebp - 0x18]
shl edi, 0x13
or edi, ebx
mov ebx, dword [ebp - 4]
mov dword [ebp - 0x18], edi
mov edi, dword [ebp - 4]
shr edi, 0x16
shl ebx, 0xa
or edi, ebx
xor dword [ebp - 0x18], edi
mov edi, dword [ebp - 4]
mov ebx, dword [ebp - 4]
shl edi, 0x1e
add dword [ebp + 8], 4
shr ebx, 2
or edi, ebx
xor dword [ebp - 0x18], edi
mov edi, dword [ebp - 0xc]
mov ebx, dword [ebp - 0xc]
or edi, esi
and edi, dword [ebp - 4]
and ebx, esi
or edi, ebx
mov ebx, dword [ebp - 0x18]
add ebx, edi
mov edi, dword [ebp - 0x14]
mov dword [ebp - 0x24], ebx
mov ebx, dword [ebp - 0x10]
mov dword [ebp - 0x10], edi
mov edi, dword [ebp - 0xc]
mov dword [ebp - 0x14], edx
mov edx, dword [ebp - 0x1c]
mov dword [ebp - 0x1c], edi
mov edi, dword [ebp - 0x24]
add edi, ecx
add edx, ecx
inc dword [ebp - 8]
cmp dword [ebp - 8], 0x10
mov dword [ebp - 0xc], esi
mov esi, dword [ebp - 4]
mov dword [ebp - 0x18], ebx
mov dword [ebp - 4], edi
jl 0x40b390
cmp dword [ebp - 8], 0x40
mov dword [ebp - 0x20], esi
jge 0x40b5c9
mov ecx, dword [ebp - 8]
add ecx, 0xfffffffe
mov dword [ebp - 0x24], ecx
mov ecx, dword [ebp - 0x24]
mov esi, dword [ebp - 0x28]
lea edi, [ecx + 3]
and edi, 0xf
mov edi, dword [esi + edi*4]
mov dword [ebp + 8], edi
mov edi, dword [ebp - 8]
and edi, 0xf
and ecx, 0xf
mov ecx, dword [esi + ecx*4]
lea esi, [esi + edi*4]
mov edi, ecx
shl edi, 0xf
mov ebx, ecx
mov dword [ebp - 0x2c], esi
mov esi, ecx
shr esi, 0x11
or esi, edi
mov edi, ecx
shr edi, 0x13
shr ecx, 0xa
shl ebx, 0xd
or edi, ebx
xor esi, edi
xor esi, ecx
mov ecx, dword [ebp + 8]
mov edi, ecx
shr edi, 0x12
mov ebx, ecx
shl ebx, 0xe
or edi, ebx
mov ebx, ecx
shr ecx, 7
shl ebx, 0x19
or ebx, ecx
mov ecx, dword [ebp + 8]
xor edi, ebx
shr ecx, 3
xor edi, ecx
mov ecx, dword [ebp - 0x24]
add esi, edi
mov edi, dword [ebp - 0x28]
add ecx, 0xfffffffb
and ecx, 0xf
add esi, dword [edi + ecx*4]
mov ecx, dword [ebp - 0x2c]
add dword [ecx], esi
mov esi, dword [ecx]
mov ecx, edx
shl ecx, 0x15
mov edi, edx
shr edi, 0xb
or ecx, edi
mov edi, edx
shl edi, 0x1a
mov ebx, edx
shr ebx, 6
or edi, ebx
xor ecx, edi
mov edi, edx
shr edi, 0x19
mov ebx, edx
shl ebx, 7
or edi, ebx
xor ecx, edi
mov edi, dword [ebp - 0x10]
xor edi, dword [ebp - 0x14]
and edi, edx
xor edi, dword [ebp - 0x10]
add ecx, edi
mov edi, dword [ebp - 8]
add ecx, dword [edi*4 + 0x4195d8]
add ecx, esi
mov esi, dword [ebp - 4]
add ecx, dword [ebp - 0x18]
mov dword [ebp + 8], esi
shl dword [ebp + 8], 0x13
mov edi, esi
shr edi, 0xd
or dword [ebp + 8], edi
mov edi, esi
shr edi, 0x16
mov ebx, esi
shl ebx, 0xa
or edi, ebx
xor dword [ebp + 8], edi
mov edi, esi
mov ebx, esi
shr ebx, 2
shl edi, 0x1e
or edi, ebx
mov ebx, dword [ebp - 0xc]
or ebx, dword [ebp - 0x20]
xor dword [ebp + 8], edi
mov edi, dword [ebp + 8]
and ebx, esi
mov esi, dword [ebp - 0xc]
and esi, dword [ebp - 0x20]
or ebx, esi
mov esi, dword [ebp - 0x14]
add edi, ebx
mov ebx, dword [ebp - 0x10]
mov dword [ebp - 0x10], esi
mov esi, dword [ebp - 0xc]
mov dword [ebp - 0x14], edx
mov edx, dword [ebp - 0x1c]
mov dword [ebp - 0x1c], esi
mov esi, dword [ebp - 0x20]
add edi, ecx
add edx, ecx
inc dword [ebp - 8]
inc dword [ebp - 0x24]
cmp dword [ebp - 8], 0x40
mov dword [ebp - 0xc], esi
mov esi, dword [ebp - 4]
mov dword [ebp - 0x18], ebx
mov dword [ebp - 0x20], esi
mov dword [ebp - 4], edi
jl 0x40b487
mov ecx, dword [ebp - 4]
add dword [eax], ecx
mov ecx, dword [ebp - 0xc]
add dword [eax + 8], ecx
mov ecx, dword [ebp - 0x1c]
add dword [eax + 0xc], ecx
mov ecx, dword [ebp - 0x14]
add dword [eax + 0x14], ecx
add dword [eax + 4], esi
mov ecx, dword [ebp - 0x10]
add dword [eax + 0x10], edx
add dword [eax + 0x18], ecx
add dword [eax + 0x1c], ebx
pop edi
pop esi
pop ebx
leave
ret