Function at 0x10292714
Capabilities:
Encode data using xor

Disassembly:
push ebp
push ebx
push edi
push esi
sub esp, 0xc
mov ecx, dword [esp + 0x24]
mov eax, 0x20001
lea edx, [ecx - 0x10]
cmp edx, 0x10
ja 0x10292a32
mov esi, 0x10101
bt esi, edx
jae 0x10292a32
mov esi, dword [esp + 0x28]
mov edx, ecx
shr edx, 2
and edx, 0x3e
add edx, 6
test esi, esi
je 0x1029275e
mov eax, 0x20002
cmp edx, esi
jne 0x10292a32
mov ebx, dword [esp + 0x2c]
mov eax, dword [esp + 0x20]
cmp ecx, 0x20
mov dword [ebx + 0x1e0], edx
mov ebp, dword [eax]
bswap ebp
mov dword [ebx], ebp
mov edx, dword [eax + 4]
bswap edx
mov dword [ebx + 4], edx
mov dword [esp], edx
mov edx, dword [eax + 8]
bswap edx
mov dword [ebx + 8], edx
mov esi, dword [eax + 0xc]
bswap esi
mov dword [ebx + 0xc], esi
je 0x10292852
cmp ecx, 0x18
je 0x102927ee
mov eax, 0xffff
cmp ecx, 0x10
jne 0x10292a32
mov edi, dword [esp]
xor edx, edx
mov ecx, esi
mov dword [esp], edx
call fcn.102932c1
mov edx, dword [esp]
xor eax, ebp
xor eax, dword [edx*4 + 0x10441c6c]
inc edx
xor edi, eax
mov dword [ebx + 0x10], eax
mov ebp, eax
mov dword [ebx + 0x14], edi
mov ecx, dword [ebx + 8]
xor ecx, edi
xor esi, ecx
mov dword [ebx + 0x18], ecx
cmp edx, 0xa
mov dword [ebx + 0x1c], esi
lea ebx, [ebx + 0x10]
jne 0x102927ae
mov edx, 0x2c
jmp 0x102928ba
mov ecx, dword [eax + 0x10]
xor edi, edi
bswap ecx
mov dword [ebx + 0x10], ecx
mov eax, dword [eax + 0x14]
bswap eax
mov dword [ebx + 0x14], eax
mov ecx, dword [ebx + 0x14]
mov dword [esp + 4], esi
call fcn.102932c1
xor ebp, eax
mov eax, dword [esp]
xor ebp, dword [edi*4 + 0x10441c6c]
inc edi
xor eax, ebp
mov dword [ebx + 0x18], ebp
mov dword [ebx + 0x1c], eax
mov esi, dword [ebx + 8]
xor esi, eax
mov dword [ebx + 0x20], esi
xor esi, dword [esp + 4]
cmp edi, 8
mov dword [ebx + 0x24], esi
jne 0x1029283c
mov edx, 0x34
jmp 0x102928ba
mov ecx, dword [ebx + 0x10]
mov dword [esp], eax
xor ecx, esi
mov dword [ebx + 0x28], ecx
xor ecx, dword [ebx + 0x14]
mov dword [ebx + 0x2c], ecx
lea ebx, [ebx + 0x18]
jmp 0x10292800
mov ecx, dword [eax + 0x10]
mov edi, ebx
mov dword [esp + 4], 0
bswap ecx
mov dword [ebx + 0x10], ecx
mov ecx, dword [eax + 0x14]
bswap ecx
mov dword [ebx + 0x14], ecx
mov ecx, dword [eax + 0x18]
bswap ecx
mov dword [ebx + 0x18], ecx
mov eax, dword [eax + 0x1c]
bswap eax
mov dword [ebx + 0x1c], eax
mov ecx, dword [edi + 0x1c]
mov ebx, esi
call fcn.102932c1
mov ecx, dword [esp + 4]
xor ebp, eax
mov eax, dword [esp]
xor ebp, dword [ecx*4 + 0x10441c6c]
inc ecx
xor eax, ebp
mov dword [edi + 0x20], ebp
mov dword [edi + 0x24], eax
mov esi, dword [edi + 8]
xor esi, eax
mov dword [edi + 0x28], esi
xor esi, ebx
cmp ecx, 7
mov dword [edi + 0x2c], esi
jne 0x10292a3a
mov edx, 0x3c
mov eax, dword [esp + 0x2c]
lea ebp, [eax + edx*4 - 0x10]
lea esi, [eax + 0xf0]
lea edi, [eax + 0x100]
mov ecx, dword [ebp]
mov dword [eax + 0xf0], ecx
mov ecx, dword [ebp + 4]
mov dword [eax + 0xf4], ecx
mov ecx, dword [ebp + 8]
mov dword [eax + 0xf8], ecx
mov ecx, dword [ebp + 0xc]
mov dword [eax + 0xfc], ecx
cmp dword [eax + 0x1e0], 2
jge 0x10292902
mov ebx, esi
jmp 0x10292a19
xor ecx, ecx
lea edx, [eax + edx*4 - 0x20]
inc ecx
mov dword [esp], ecx
mov ecx, ebp
mov eax, dword [ecx - 0x10]
mov dword [esp + 4], edx
mov dword [esp + 8], esi
mov edx, eax
mov ebx, eax
movzx ebp, ah
movzx eax, al
shr edx, 0xe
shr ebx, 0x18
and edx, 0x3fc
mov edx, dword [edx + 0x10442094]
xor edx, dword [ebx*4 + 0x10441c94]
xor edx, dword [ebp*4 + 0x10442494]
mov ebp, dword [esp + 4]
xor edx, dword [eax*4 + 0x10442894]
mov dword [edi], edx
mov ebx, dword [ecx - 0xc]
mov eax, ebx
mov edx, ebx
shr eax, 0xe
shr edx, 0x18
and eax, 0x3fc
mov eax, dword [eax + 0x10442094]
xor eax, dword [edx*4 + 0x10441c94]
movzx edx, bh
movzx ebx, bl
xor eax, dword [edx*4 + 0x10442494]
xor eax, dword [ebx*4 + 0x10442894]
mov dword [esi + 0x14], eax
mov edx, dword [ecx - 8]
mov eax, edx
mov ebx, edx
shr eax, 0xe
shr ebx, 0x18
and eax, 0x3fc
mov eax, dword [eax + 0x10442094]
xor eax, dword [ebx*4 + 0x10441c94]
movzx ebx, dh
movzx edx, dl
xor eax, dword [ebx*4 + 0x10442494]
xor eax, dword [edx*4 + 0x10442894]
mov dword [esi + 0x18], eax
mov edx, dword [ecx - 4]
mov ecx, dword [esp + 8]
mov eax, edx
mov ebx, edx
movzx esi, dh
movzx edx, dl
shr eax, 0xe
shr ebx, 0x18
and eax, 0x3fc
mov eax, dword [eax + 0x10442094]
xor eax, dword [ebx*4 + 0x10441c94]
xor eax, dword [esi*4 + 0x10442494]
mov esi, edi
lea edi, [edi + 0x10]
mov ebx, esi
xor eax, dword [edx*4 + 0x10442894]
lea edx, [ebp - 0x10]
mov dword [ecx + 0x1c], eax
mov ecx, dword [esp]
mov eax, dword [esp + 0x2c]
inc ecx
cmp ecx, dword [eax + 0x1e0]
mov dword [esp], ecx
mov ecx, ebp
jl 0x1029290e
mov eax, dword [ebp - 0x10]
mov dword [edi], eax
mov eax, dword [ebp - 0xc]
mov dword [ebx + 0x14], eax
mov eax, dword [ebp - 8]
mov dword [ebx + 0x18], eax
mov eax, dword [ebp - 4]
mov dword [ebx + 0x1c], eax
xor eax, eax
add esp, 0xc
pop esi
pop edi
pop ebx
pop ebp
ret
mov ebx, dword [edi + 0x10]
mov dword [esp + 4], ecx
mov ecx, esi
mov dword [esp], eax
ror ecx, 8
call fcn.102932c1
xor eax, ebx
mov dword [edi + 0x30], eax
xor eax, dword [edi + 0x14]
mov dword [edi + 0x34], eax
xor eax, dword [edi + 0x18]
mov dword [edi + 0x38], eax
xor eax, dword [edi + 0x1c]
mov dword [edi + 0x3c], eax
lea edi, [edi + 0x20]
jmp 0x1029287c