Function at 0x4012f4
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
push ecx
push ebx
push esi
push edi
mov edi, dword [ebp + 8]
cmp edi, 0xa
jl case.0x401313.22
cmp edi, 0x22
jg case.0x401313.22
sub edi, 0xa
jmp dword [edi*4 + 0x40d094]
mov edi, dword [0x40a268]
mov esi, dword [0x40a044]
mov esi, dword [esi*4 + 0x40a26c]
mov dword [edi*4 + 0x40c1ac], esi
jmp case.0x401313.22
mov edi, dword [0x40a044]
mov esi, dword [0x40a268]
mov esi, dword [esi*4 + 0x40c1ac]
mov dword [edi*4 + 0x40a26c], esi
jmp case.0x401313.22
mov edi, dword [0x40a044]
mov esi, edi
shl esi, 7
lea esi, [esi + 0x40a05c]
mov ebx, dword [0x40a268]
mov ebx, dword [esi + ebx*4]
mov edx, dword [0x40a04c]
add ebx, dword [esi + edx*4]
mov esi, dword [ebx*4 + 0x40a26c]
mov dword [edi*4 + 0x40c1ac], esi
jmp case.0x401313.22
mov edi, dword [0x40a044]
mov esi, edi
shl esi, 7
lea esi, [esi + 0x40a05c]
mov ebx, dword [0x40a268]
mov ebx, dword [esi + ebx*4]
mov edx, dword [0x40a04c]
add ebx, dword [esi + edx*4]
mov edi, dword [edi*4 + 0x40c1ac]
mov dword [ebx*4 + 0x40a26c], edi
jmp case.0x401313.22
mov dword [ebp - 4], 0
mov edi, dword [ebp - 4]
mov esi, dword [0x40a044]
mov ebx, edi
shl ebx, 7
mov edi, dword [edi*4 + 0x40c1ac]
mov dword [ebx + esi*4 + 0x40a05c], edi
inc dword [ebp - 4]
cmp dword [ebp - 4], 4
jl 0x4013cd
jmp case.0x401313.22
mov dword [ebp - 4], 0
mov edi, dword [ebp - 4]
mov esi, dword [0x40a044]
mov ebx, edi
shl ebx, 7
mov esi, dword [ebx + esi*4 + 0x40a05c]
mov dword [edi*4 + 0x40c1ac], esi
inc dword [ebp - 4]
cmp dword [ebp - 4], 4
jl 0x4013fe
jmp case.0x401313.22
mov dword [ebp - 4], 0
mov edi, dword [ebp - 4]
mov esi, dword [0x40a044]
mov esi, dword [esi*4 + 0x40a26c]
mov dword [edi*4 + 0x40c1ac], esi
inc dword [ebp - 4]
cmp dword [ebp - 4], 4
jl 0x40142f
jmp case.0x401313.22
mov dword [ebp - 4], 0
mov edi, dword [0x40a044]
mov esi, dword [ebp - 4]
shl esi, 7
mov ebx, dword [0x40a268]
mov ebx, dword [ebx*4 + 0x40c1ac]
mov dword [esi + edi*4 + 0x40a05c], ebx
inc dword [ebp - 4]
cmp dword [ebp - 4], 4
jl 0x40145b
jmp case.0x401313.22
mov dword [ebp - 4], 0
mov edi, dword [ebp - 4]
shl edi, 7
lea edi, [edi + 0x40a05c]
mov esi, dword [0x40a044]
mov ebx, dword [0x40a268]
mov ebx, dword [edi + ebx*4]
mov edx, dword [0x40a04c]
add ebx, dword [edi + edx*4]
mov dword [edi + esi*4], ebx
inc dword [ebp - 4]
cmp dword [ebp - 4], 4
jl 0x401490
jmp case.0x401313.22
mov dword [ebp - 4], 0
mov edi, dword [ebp - 4]
shl edi, 7
lea edi, [edi + 0x40a05c]
mov esi, dword [0x40a044]
mov ebx, dword [0x40a268]
mov ebx, dword [edi + ebx*4]
mov edx, dword [0x40a04c]
sub ebx, dword [edi + edx*4]
mov dword [edi + esi*4], ebx
inc dword [ebp - 4]
cmp dword [ebp - 4], 4
jl 0x4014cd
jmp case.0x401313.22
mov dword [ebp - 4], 0
mov edi, dword [ebp - 4]
shl edi, 7
lea edi, [edi + 0x40a05c]
mov esi, dword [0x40a044]
mov ebx, dword [0x40a268]
mov ebx, dword [edi + ebx*4]
mov edx, dword [0x40a04c]
imul ebx, dword [edi + edx*4]
mov dword [edi + esi*4], ebx
inc dword [ebp - 4]
cmp dword [ebp - 4], 4
jl 0x40150a
jmp case.0x401313.22
mov dword [ebp - 4], 0
mov edi, dword [ebp - 4]
shl edi, 7
lea edi, [edi + 0x40a05c]
mov esi, dword [0x40a268]
mov ebx, dword [0x40a04c]
mov ebx, dword [edi + ebx*4]
mov ecx, dword [0x40a044]
sar ebx, cl
mov dword [edi + esi*4], ebx
inc dword [ebp - 4]
cmp dword [ebp - 4], 4
jl 0x401548
jmp case.0x401313.22
mov dword [ebp - 4], 0
mov edi, dword [ebp - 4]
shl edi, 7
lea edi, [edi + 0x40a05c]
mov esi, dword [0x40a268]
mov ebx, dword [0x40a04c]
mov ebx, dword [edi + ebx*4]
add ebx, dword [0x40a260]
mov dword [edi + esi*4], ebx
inc dword [ebp - 4]
cmp dword [ebp - 4], 4
jl 0x401584
jmp case.0x401313.22
mov dword [ebp - 4], 0
mov edi, dword [ebp - 4]
shl edi, 7
lea edi, [edi + 0x40a05c]
mov esi, dword [0x40a044]
mov ebx, dword [0x40a268]
mov ebx, dword [edi + ebx*4]
mov edx, dword [0x40a04c]
and ebx, dword [edi + edx*4]
mov dword [edi + esi*4], ebx
inc dword [ebp - 4]
cmp dword [ebp - 4], 4
jl 0x4015be
jmp case.0x401313.22
mov dword [ebp - 4], 0
mov edi, dword [ebp - 4]
shl edi, 7
lea edi, [edi + 0x40a05c]
mov esi, dword [0x40a044]
mov ebx, dword [0x40a268]
mov ebx, dword [edi + ebx*4]
mov edx, dword [0x40a04c]
or ebx, dword [edi + edx*4]
mov dword [edi + esi*4], ebx
inc dword [ebp - 4]
cmp dword [ebp - 4], 4
jl 0x4015fb
jmp case.0x401313.22
mov dword [ebp - 4], 0
mov edi, dword [ebp - 4]
shl edi, 7
lea edi, [edi + 0x40a05c]
mov esi, dword [0x40a044]
mov ebx, dword [0x40a268]
mov ebx, dword [edi + ebx*4]
mov edx, dword [0x40a04c]
xor ebx, dword [edi + edx*4]
mov dword [edi + esi*4], ebx
inc dword [ebp - 4]
cmp dword [ebp - 4], 4
jl 0x401638
jmp case.0x401313.22
mov dword [ebp - 4], 0
mov edi, dword [ebp - 4]
shl edi, 7
lea edi, [edi + 0x40a05c]
mov esi, dword [0x40a268]
mov edx, dword [0x40a04c]
mov edx, dword [edi + edx*4]
cmp dword [edi + esi*4], edx
jge 0x40169d
mov ebx, 1
jmp 0x4016a2
mov ebx, 0
mov esi, dword [0x40a044]
mov dword [edi + esi*4], ebx
inc dword [ebp - 4]
cmp dword [ebp - 4], 4
jl 0x401675
jmp case.0x401313.22
mov dword [ebp - 4], 0
mov edi, dword [ebp - 4]
shl edi, 7
lea edi, [edi + 0x40a05c]
mov esi, dword [0x40a268]
mov edx, dword [0x40a04c]
mov edx, dword [edi + edx*4]
cmp dword [edi + esi*4], edx
jg 0x4016e8
mov ebx, 1
jmp 0x4016ed
mov ebx, 0
mov esi, dword [0x40a044]
mov dword [edi + esi*4], ebx
inc dword [ebp - 4]
cmp dword [ebp - 4], 4
jl 0x4016c0
jmp case.0x401313.22
mov dword [ebp - 4], 0
mov edi, dword [ebp - 4]
shl edi, 7
lea edi, [edi + 0x40a05c]
mov esi, dword [0x40a268]
mov edx, dword [0x40a04c]
mov edx, dword [edi + edx*4]
cmp dword [edi + esi*4], edx
jne 0x401733
mov ebx, 1
jmp 0x401738
mov ebx, 0
mov esi, dword [0x40a044]
mov dword [edi + esi*4], ebx
inc dword [ebp - 4]
cmp dword [ebp - 4], 4
jl 0x40170b
jmp case.0x401313.22
mov edi, dword [0x40a044]
mov dword [0x40a264], edi
jmp case.0x401313.22
push dword [0x40a268]
call fcn.004012bb
add esp, 4
cmp eax, 0
je case.0x401313.22
mov edi, dword [0x40a044]
mov dword [0x40a264], edi
jmp case.0x401313.22
push dword [0x40a268]
call fcn.004012bb
add esp, 4
cmp eax, 0
jne case.0x401313.22
mov edi, dword [0x40a044]
mov dword [0x40a264], edi
jmp case.0x401313.22
mov dword [ebp - 4], 0
mov edi, dword [0x40a044]
mov esi, dword [ebp - 4]
shl esi, 7
cmp dword [esi + edi*4 + 0x40a05c], 0
je 0x4017e2
mov edi, dword [ebp - 4]
shl edi, 7
lea edi, [edi + 0x40a05c]
mov esi, dword [0x40a268]
mov ebx, dword [0x40a04c]
mov ebx, dword [edi + ebx*4]
mov dword [edi + esi*4], ebx
inc dword [ebp - 4]
cmp dword [ebp - 4], 4
jl 0x4017ad
jmp case.0x401313.22
cmp dword [0x40a044], 4
je 0x4017f8
jmp case.0x401313.22
mov dword [0x40a050], 0
pop edi
pop esi
pop ebx
leave
ret