Function at 0x454fd0
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff0
push esi
push edi
push ebx
sub esp, 0x24
mov edx, 0xffffff00
mov eax, dword [ebp + 8]
mov edi, eax
mov ecx, dword [ebp + 0xc]
mov ebx, edx
mov esi, ecx
push ebx
push edi
call esi
add esp, 8
fstp dword [edi + ebx*4 + 0x2eb0]
inc ebx
cmp ebx, 0x7a
jl 0x454fed
mov eax, edi
xor edx, edx
mov ecx, dword [eax + 0x4cd4]
movdqu xmm3, xmmword [str._a_a_a_a]
pxor xmm4, xmm4
movdqu xmm2, xmmword [0x4c82e0]
movd xmm0, ecx
pshufd xmm0, xmm0, 0
movdqu xmm1, xmmword [0x4c82f0]
movdqu xmmword [esp + 0x10], xmm0
mov dword [esp], edx
mov esi, dword [esp]
imul edx, esi, 0x5c
imul esi, esi, 0x6e
lea eax, [edi + edx + 0xc]
lea ebx, [edi + edx]
and eax, 0xf
je 0x45508e
neg eax
xor edx, edx
add eax, 0x10
mov edi, edx
shr eax, 2
mov dword [esp + 8], eax
movzx edx, word [esi + edi*2 + 0x4c6900]
mov eax, 0x38e38e39
add edx, 7
imul edx
sar edx, 2
inc edx
cmp edx, ecx
cmovge edx, ecx
mov dword [ebx + edi*4 + 0x257c], edx
inc edi
cmp edi, dword [esp + 8]
jb 0x45505e
mov eax, dword [esp + 8]
mov edi, dword [ebp + 8]
mov edx, eax
mov edi, eax
neg edx
add edx, 3
and edx, 3
neg edx
add edx, 0x17
mov dword [esp + 0xc], edx
mov dword [esp + 4], ecx
movq xmm0, qword [esi + edi*2 + 0x4c6900]
pxor xmm1, xmm1
punpcklwd xmm0, xmm1
paddd xmm0, xmmword [str._a_a_a_a]
movdqu xmm1, xmmword [0x4c82e0]
call fcn.0048e4b0
movdqa xmm1, xmm0
paddd xmm1, xmmword [0x4c82f0]
movdqu xmm0, xmmword [esp + 0x10]
movdqa xmm2, xmm1
pcmpgtd xmm2, xmm0
pxor xmm0, xmm1
pand xmm2, xmm0
pxor xmm2, xmm1
movdqu xmmword [ebx + edi*4 + 0x257c], xmm2
add edi, 4
cmp edi, dword [esp + 0xc]
jb 0x4550a7
mov edx, dword [esp + 0xc]
mov ecx, dword [esp + 4]
mov edi, dword [ebp + 8]
cmp edx, 0x17
jae 0x455142
mov edi, edx
movzx edx, word [esi + edi*2 + 0x4c6900]
mov eax, 0x38e38e39
add edx, 7
imul edx
sar edx, 2
inc edx
cmp edx, ecx
cmovge edx, ecx
mov dword [ebx + edi*4 + 0x257c], edx
inc edi
cmp edi, 0x17
jb 0x455117
mov edi, dword [ebp + 8]
mov eax, dword [esp]
movzx edi, word [esi + 0x4c6944]
dec edi
lea ebx, [eax*8]
sub ebx, eax
mov eax, 0x38e38e39
imul edi
sar edx, 2
mov eax, 0x38e38e39
sar edi, 0x1f
sub edx, edi
inc edx
mov edi, dword [ebp + 8]
cmp edx, ecx
cmovge edx, ecx
mov dword [edi + ebx*8 + 0x28b8], edx
movzx edi, word [esi + 0x4c6946]
dec edi
imul edi
sar edx, 2
sar edi, 0x1f
sub edx, edi
inc edx
mov eax, dword [ebp + 8]
cmp edx, ecx
movzx edi, word [esi + 0x4c6948]
cmovge edx, ecx
dec edi
mov dword [eax + ebx*8 + 0x28bc], edx
mov eax, 0x38e38e39
imul edi
sar edx, 2
mov eax, 0x38e38e39
sar edi, 0x1f
sub edx, edi
inc edx
mov edi, dword [ebp + 8]
cmp edx, ecx
cmovge edx, ecx
mov dword [edi + ebx*8 + 0x28c0], edx
movzx edi, word [esi + str._0BZx]
dec edi
imul edi
sar edx, 2
sar edi, 0x1f
sub edx, edi
inc edx
mov eax, dword [ebp + 8]
cmp edx, ecx
movzx edi, word [esi + 0x4c694c]
cmovge edx, ecx
dec edi
mov dword [eax + ebx*8 + 0x28c4], edx
mov eax, 0x38e38e39
imul edi
sar edx, 2
mov eax, 0x38e38e39
sar edi, 0x1f
sub edx, edi
inc edx
mov edi, dword [ebp + 8]
cmp edx, ecx
cmovge edx, ecx
mov dword [edi + ebx*8 + 0x28c8], edx
movzx edi, word [esi + 0x4c694e]
dec edi
imul edi
sar edx, 2
sar edi, 0x1f
sub edx, edi
inc edx
mov eax, dword [ebp + 8]
cmp edx, ecx
movzx edi, word [esi + 0x4c6950]
cmovge edx, ecx
dec edi
mov dword [eax + ebx*8 + 0x28cc], edx
mov eax, 0x38e38e39
imul edi
sar edx, 2
mov eax, 0x38e38e39
sar edi, 0x1f
sub edx, edi
inc edx
mov edi, dword [ebp + 8]
cmp edx, ecx
cmovge edx, ecx
mov dword [edi + ebx*8 + 0x28d0], edx
movzx edi, word [esi + 0x4c6952]
dec edi
imul edi
sar edx, 2
sar edi, 0x1f
sub edx, edi
inc edx
mov eax, dword [ebp + 8]
cmp edx, ecx
movzx edi, word [esi + 0x4c6954]
cmovge edx, ecx
dec edi
mov dword [eax + ebx*8 + 0x28d4], edx
mov eax, 0x38e38e39
imul edi
sar edx, 2
mov eax, 0x38e38e39
sar edi, 0x1f
sub edx, edi
inc edx
mov edi, dword [ebp + 8]
cmp edx, ecx
cmovge edx, ecx
mov dword [edi + ebx*8 + 0x28d8], edx
movzx edi, word [esi + 0x4c6956]
dec edi
imul edi
sar edx, 2
sar edi, 0x1f
sub edx, edi
inc edx
mov eax, dword [ebp + 8]
cmp edx, ecx
movzx edi, word [esi + 0x4c6958]
cmovge edx, ecx
dec edi
mov dword [eax + ebx*8 + 0x28dc], edx
mov eax, 0x38e38e39
imul edi
sar edx, 2
mov eax, 0x38e38e39
sar edi, 0x1f
sub edx, edi
inc edx
mov edi, dword [ebp + 8]
cmp edx, ecx
cmovge edx, ecx
mov dword [edi + ebx*8 + 0x28e0], edx
movzx edi, word [esi + 0x4c695a]
dec edi
imul edi
sar edx, 2
sar edi, 0x1f
sub edx, edi
inc edx
mov eax, dword [ebp + 8]
cmp edx, ecx
movzx edi, word [esi + 0x4c695c]
cmovge edx, ecx
dec edi
mov dword [eax + ebx*8 + 0x28e4], edx
mov eax, 0x38e38e39
imul edi
sar edx, 2
mov eax, 0x38e38e39
sar edi, 0x1f
sub edx, edi
inc edx
mov edi, dword [ebp + 8]
cmp edx, ecx
movzx esi, word [esi + 0x4c695e]
cmovge edx, ecx
dec esi
mov dword [edi + ebx*8 + 0x28e8], edx
imul esi
sar edx, 2
sar esi, 0x1f
sub edx, esi
inc edx
cmp edx, ecx
cmovge edx, ecx
mov dword [edi + ebx*8 + 0x28ec], edx
mov ebx, dword [esp]
inc ebx
mov dword [esp], ebx
cmp ebx, 9
jb 0x455039
add esp, 0x24
pop ebx
pop edi
pop esi
mov esp, ebp
pop ebp