Function at 0x475474
Capabilities:
Encode data using xor

Disassembly:
mov eax, 0x4c279f
call fcn.004c1d38
sub esp, 0x88
push ebx
push esi
push edi
mov dword [ebp - 0x10], esp
mov dword [ebp - 0x28], edx
mov dword [ebp - 0x24], ecx
movdqa xmm0, xmmword [0xac5690]
movdqu xmmword [ebp - 0x74], xmm0
xor esi, esi
mov dword [ebp - 0x34], esi
mov dword [ebp - 0x30], esi
mov dword [ebp - 0x2c], esi
push dword [ebp - 0x28]
lea eax, [ebp - 0x64]
push eax
lea eax, [ebp - 0x74]
push eax
push esi
lea ecx, [ebp - 0x34]
call fcn.00421d36
push 2
lea ecx, [ebp - 0x44]
call fcn.0041fb6c
mov dword [ebp - 0x20], 0x4fc4
mov dword [ebp - 0x20], 0x9ab1
mov dword [ebp - 0x14], esi
jmp 0x4754e9
mov ecx, dword [ebp - 0x14]
mov eax, dword [ebp - 0x44]
mov dword [eax + ecx*4], 0xfe6e3245
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], 2
jl 0x4754d9
mov dword [ebp - 0x38], 0x7a22
cmp dword [ebp - 0x38], 0x7cbd
jle 0x475546
mov edi, esi
mov ebx, esi
mov dword [ebp - 0x18], esi
mov dword [ebp - 0x1c], 0x129e
mov eax, esi
xor eax, edi
cdq
push edx
push eax
mov ecx, 0xad3018
call fcn.0041fa28
add esi, ebx
dec dword [ebp - 0x1c]
jne 0x47550d
inc ebx
cmp ebx, 0x2714
push 0
pop esi
jl 0x475503
inc edi
cmp edi, 0x27ed
jl 0x475501
push 0x1c52
push esi
call dword [0xad6148]
mov eax, dword [ebp - 0x44]
mov dword [eax], esi
mov ebx, dword [ebp - 0x34]
mov dword [ebp - 0x18], 0xfffffff8
mov dword [ebp - 0x1c], 0x656d4c01
mov dword [ebp - 0x20], 0xc36c1d66
mov dword [ebp - 0x14], esi
jmp 0x475576
mov eax, dword [ebp - 0x14]
mov dword [ebp + eax*4 - 0x54], 0xbf68593f
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], 4
jl 0x475568
mov dword [ebp - 0x18], 6
mov edi, dword [ebp - 0x44]
mov edx, dword [edi]
mov eax, dword [ebp - 0x34]
mov ecx, 0xb441
sub ecx, dword [eax + edx*4]
imul ecx, dword [eax + edx*4]
xor eax, eax
cmp edx, ecx
setge al
xor ecx, ecx
cmp eax, dword [ebx + 8]
setg cl
xor edx, edx
cmp ecx, 0xfffffff8
setne dl
mov edi, dword [edi]
mov eax, dword [ebp - 0x18]
mov ecx, 0x88e00f68
cmp ecx, eax
sbb eax, eax
neg eax
add eax, edx
xor ecx, ecx
cmp eax, edi
setge cl
mov eax, dword [ebp - 0x34]
cmp dword [eax + edi*4], ecx
jl 0x475669
mov dword [ebp - 0x18], 0xd23205e6
mov dword [ebp - 0x14], esi
jmp 0x4755e9
mov eax, dword [ebp - 0x14]
mov dword [ebp + eax*4 - 0x64], esi
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], 4
jl 0x4755df
mov edx, dword [ebp - 0x44]
mov eax, dword [edx]
mov ecx, dword [ebp - 0x34]
mov eax, dword [ecx + eax*4]
mov dword [ebp - 0x48], eax
mov eax, dword [edx]
cmp dword [ecx + eax*4], esi
jne 0x475653
cmp dword [ebp - 0x60], esi
jge 0x475612
cmp dword [ebp - 0x48], esi
jne 0x475612
mov eax, esi
jmp 0x475615
xor eax, eax
inc eax
mov dword [ebp - 0x1c], eax
mov eax, dword [ebp - 0x1c]
mov dword [ebp - 0x18], eax
mov ecx, dword [ebp - 0x18]
mov eax, dword [ebp - 0x20]
xor edx, edx
cmp ecx, eax
setle dl
mov eax, dword [ebp - 0x54]
xor ecx, ecx
cmp edx, eax
setg cl
add ecx, 0x7cfd3359
mov eax, dword [ebp - 0x60]
xor edx, edx
cmp ecx, eax
setle dl
cmp edx, dword [ebp - 0x4c]
jl 0x47564d
mov eax, dword [ebp - 0x18]
mov eax, dword [ebp - 0x48]
mov eax, dword [ebp - 0x60]
cmp dword [ebp - 0x1c], esi
je 0x475662
cmp dword [ebp - 0x48], esi
je 0x475662
xor eax, eax
inc eax
jmp 0x475664
mov eax, esi
mov dword [ebp - 0x48], eax
jmp 0x475675
mov dword [ebp - 0x20], 3
cmp dword [ebp - 0x20], esi
jne 0x475683
mov eax, dword [ebp - 0x44]
inc dword [eax]
cmp dword [eax], 3
jle 0x47554e
mov ebx, dword [ebp - 0x24]
mov dword [ebp - 4], esi
cmp dword [ebp - 0x38], 0x780d
jge 0x4756a1
mov edx, 0xac1230
mov ecx, 0xad3018
call fcn.004217de
or dword [ebp - 4], 0xffffffff
jmp 0x4756ca
lea ecx, [ebp - 0x44]
call fcn.0041fc3e
lea ecx, [ebp - 0x34]
call fcn.0041fc3e
mov dword [ebp - 0x18], 0xca631852
mov dword [ebp - 0x14], esi
jmp 0x4756f3
mov eax, dword [ebp - 0x14]
mov dword [ebp + eax*4 - 0x94], esi
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], 2
jl 0x4756e6
mov dword [ebp - 0x18], 0xfffffffb
jmp 0x475754
mov dword [ebp - 0x20], 1
mov dword [ebp - 0x14], esi
jmp 0x47571f
mov eax, dword [ebp - 0x14]
mov dword [ebp + eax*4 - 0x8c], 7
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], 3
jl 0x47570e
mov dword [ebp - 0x14], esi
jmp 0x475734
mov eax, dword [ebp - 0x14]
mov dword [ebp + eax*4 - 0x80], esi
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], 3
jl 0x47572a
mov eax, dword [ebp - 0x20]
mov dword [ebp - 0x8c], eax
mov ecx, 0xa624cdb8
cmp ecx, eax
sbb eax, eax
neg eax
mov dword [ebp - 0x80], eax
dec dword [ebp - 0x18]
cmp dword [ebp - 0x18], 0xffffffe3
jg 0x475702
mov dword [ebx], esi
cmp dword [ebx], 2
jge 0x475776
mov edx, dword [ebp - 0x28]
mov ecx, dword [ebx]
mov eax, dword [edx]
mov dword [eax + ecx*4], 0xfe6e3245
inc dword [ebx]
cmp dword [ebx], 2
jl 0x475764
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret