Function at 0x4547b4
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
add esp, 0xfffffe74
push ebx
push esi
push edi
xor ebx, ebx
mov dword [ebp - 0xc], ebx
mov ebx, ecx
mov dword [ebp - 8], edx
mov dword [ebp - 4], eax
xor eax, eax
push ebp
push 0x454a4f
push dword fs:[eax]
mov dword fs:[eax], esp
xor edi, edi
push ebp
push 0x454a19
push dword fs:[edi]
mov dword fs:[edi], esp
lea eax, [ebp - 0xc]
mov edx, dword [ebp - 8]
call fcn.004045ac
mov eax, dword [ebp - 0xc]
call fcn.00404674
mov dword [ebp - 0x18], eax
xor eax, eax
mov dword [ebp - 0x1c], eax
mov dword [ebp - 0x10], 0x20
mov eax, 0x456e4c
xor edx, edx
mov dl, byte [eax]
add dword [ebp - 0x1c], edx
inc eax
dec dword [ebp - 0x10]
jne 0x454810
sub ebx, 8
add dword [ebp - 0x1c], ebx
cmp dword [ebp - 4], 0
je 0x45484c
mov edx, dword [ebp - 4]
lea eax, [ebp - 0x18c]
call fcn.00402be4
mov edx, 1
lea eax, [ebp - 0x18c]
call fcn.004030ac
call fcn.0040286c
xor edi, edi
push ebp
push 0x454a08
push dword fs:[edi]
mov dword fs:[edi], esp
mov eax, dword [ebp - 0x18]
test eax, eax
jns 0x454864
add eax, 0x1f
sar eax, 5
dec eax
test eax, eax
jl 0x45491b
inc eax
mov dword [ebp - 0x20], eax
mov dword [ebp - 0x10], 0
mov eax, dword [ebp - 0x10]
shl eax, 5
mov dword [ebp - 0x14], eax
xor eax, eax
mov edx, 0x456e4c
lea esi, [ebp - 0x40]
mov ecx, dword [ebp - 0x14]
add ecx, eax
mov ebx, dword [ebp - 0xc]
mov cl, byte [ebx + ecx]
xor cl, byte [edx]
mov byte [esi], cl
inc eax
inc esi
inc edx
cmp eax, 0x20
jne 0x45488e
mov esi, dword [ebp - 0x1c]
and esi, 0x8000001f
jns 0x4548b5
dec esi
or esi, 0xffffffe0
inc esi
test esi, esi
jle 0x4548d3
mov cl, byte [ebp - 0x21]
mov edx, 0xffffffe1
lea eax, [ebp - 0x22]
mov bl, byte [eax]
mov byte [eax + 1], bl
dec eax
inc edx
jne 0x4548c4
mov byte [ebp - 0x40], cl
dec esi
jne 0x4548b9
cmp dword [ebp - 4], 0
je 0x4548f5
push 0
lea edx, [ebp - 0x40]
mov ecx, 0x20
lea eax, [ebp - 0x18c]
call fcn.00402d5c
call fcn.0040286c
jmp 0x45490f
xor eax, eax
lea edx, [ebp - 0x40]
mov ecx, dword [ebp - 0x14]
add ecx, eax
mov ebx, dword [ebp - 8]
add ebx, ecx
mov cl, byte [edx]
mov byte [ebx], cl
inc eax
inc edx
cmp eax, 0x20
jne 0x4548fa
inc dword [ebp - 0x10]
dec dword [ebp - 0x20]
jne 0x45487b
mov esi, dword [ebp - 0x18]
and esi, 0x8000001f
jns 0x45492b
dec esi
or esi, 0xffffffe0
inc esi
test esi, esi
je 0x4549e0
mov eax, esi
dec eax
test eax, eax
jl 0x454961
inc eax
mov dword [ebp - 0x20], eax
xor eax, eax
mov edx, 0x456e4c
lea ecx, [ebp - 0x40]
mov ebx, dword [ebp - 0x18]
sub ebx, esi
add ebx, eax
mov edi, dword [ebp - 0xc]
mov bl, byte [edi + ebx]
xor bl, byte [edx]
mov byte [ecx], bl
inc eax
inc ecx
inc edx
dec dword [ebp - 0x20]
jne 0x454948
mov eax, dword [ebp - 0x1c]
and eax, 0x8000001f
jns 0x454970
dec eax
or eax, 0xffffffe0
inc eax
test eax, eax
jle 0x45499a
mov dword [ebp - 0x20], eax
mov cl, byte [ebp + esi - 0x41]
mov edx, esi
dec edx
cmp edx, 1
jl 0x454992
lea eax, [ebp + edx - 0x41]
mov bl, byte [eax]
mov byte [eax + 1], bl
dec edx
dec eax
test edx, edx
jne 0x454987
mov byte [ebp - 0x40], cl
dec dword [ebp - 0x20]
jne 0x454977
cmp dword [ebp - 4], 0
je 0x4549b9
push 0
lea edx, [ebp - 0x40]
mov ecx, esi
lea eax, [ebp - 0x18c]
call fcn.00402d5c
call fcn.0040286c
jmp 0x4549e0
mov eax, esi
dec eax
test eax, eax
jl 0x4549e0
inc eax
mov dword [ebp - 0x20], eax
xor eax, eax
lea edx, [ebp - 0x40]
mov ecx, dword [ebp - 0x18]
sub ecx, esi
add ecx, eax
mov ebx, dword [ebp - 8]
add ebx, ecx
mov cl, byte [edx]
mov byte [ebx], cl
inc eax
inc edx
dec dword [ebp - 0x20]
jne 0x4549c9
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x454a0f
mov bx, word [ebp - 0x18]
cmp dword [ebp - 4], 0
je 0x454a07
lea eax, [ebp - 0x18c]
call fcn.00402d7c
call fcn.0040286c
ret