Function at 0x40feb0
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
push ecx
mov ax, word [0x4ad350]
movzx ecx, word [0x4ad38c]
cwde
sub ecx, eax
sub ecx, 0x34e6251e
mov word [0x4ad38c], cx
mov eax, dword [0x4ad2a4]
movss xmm0, dword [0x4ad334]
add eax, 0x3a99b2b
push ebx
push esi
push edi
movd xmm1, eax
cvtdq2ps xmm1, xmm1
mulss xmm0, xmm1
movss dword [0x4ad334], xmm0
dec dword [0x4ad2a4]
movss xmm0, dword [0x4ad044]
addss xmm0, dword [0x4a1528]
subss xmm0, dword [0x4a142c]
cvtps2pd xmm1, xmm0
movsd xmm0, qword [0x4ad240]
addsd xmm0, xmm1
movsd qword [0x4ad240], xmm0
movsd xmm0, qword [0x4ad0b0]
subsd xmm0, qword [0x49ea58]
movsd qword [0x4ad0b0], xmm0
movss xmm0, dword [0x4ad600]
movsd xmm1, qword [0x4ad0b0]
cvtps2pd xmm0, xmm0
addsd xmm1, xmm0
movss xmm0, dword [0x4ad458]
cvtps2pd xmm0, xmm0
addsd xmm0, xmm1
cvttsd2si eax, xmm0
mov word [0x4ad630], ax
mov eax, dword [ebp + 0xc]
add eax, 4
push eax
call fcn.00456055
mov esi, eax
add esp, 4
mov eax, dword [0x4ad304]
movsd xmm0, qword [0x4ad138]
movd xmm1, eax
cvtdq2pd xmm1, xmm1
subsd xmm1, xmm0
subsd xmm1, qword [0x4a1a98]
comisd xmm1, xmmword [0x4a1e58]
jbe 0x40ffdd
mov eax, dword [str.yu_]
movss xmm0, dword [0x4ad094]
sub eax, 0xba72ec6
movd xmm1, eax
cvtdq2ps xmm1, xmm1
mulss xmm0, xmm1
movss dword [0x4ad094], xmm0
inc dword [str.yu_]
mov eax, dword [0x4ad5f4]
movsd xmm2, qword [0x4ad0b0]
movsd xmm1, qword [0x49f788]
movss xmm3, dword [0x49ea54]
movd xmm0, eax
cvtdq2pd xmm0, xmm0
mov dword [ebp - 4], esi
addsd xmm2, xmm0
movsd xmm0, qword [0x4ad0b0]
subsd xmm0, qword [0x49ea58]
subsd xmm2, qword [0x49ef40]
movsd qword [0x4ad0b0], xmm0
dec dword [0x4ad5f4]
comisd xmm1, xmm2
jbe 0x410096
movss xmm0, dword [0x4ad248]
subss xmm0, xmm3
movss dword [0x4ad248], xmm0
movss xmm1, dword [0x4ad248]
movsx eax, word [0x4ad530]
addss xmm1, dword [0x4a0e2c]
dec word [0x4ad530]
movd xmm0, eax
cvtdq2ps xmm0, xmm0
comiss xmm1, xmm0
jbe 0x410096
movsd xmm1, qword [0x4ad3c0]
movsx eax, word [0x4ad32c]
movd xmm0, eax
cvtdq2pd xmm0, xmm0
subsd xmm1, xmm0
movsd qword [0x4ad3c0], xmm1
mov edi, dword [ebp + 8]
mov edx, 0x21ba
nop
dec word [0x4ad418]
movsx eax, word [0x4ad418]
movss xmm0, dword [0x4ad600]
movd xmm2, eax
mov ax, word [0x4ad5b0]
movsx ecx, word [0x4ad310]
dec word [0x4ad5b0]
cwde
cvtdq2ps xmm2, xmm2
sub ecx, eax
movd xmm1, ecx
subss xmm2, xmm0
movss xmm0, dword [0x4ad600]
cvtdq2ps xmm1, xmm1
subss xmm0, xmm3
comiss xmm2, xmm1
movss dword [0x4ad600], xmm0
jb 0x410136
movss xmm1, dword [0x4ad534]
movss xmm0, dword [0x4ad534]
addss xmm0, xmm3
movss dword [0x4ad534], xmm0
movss xmm0, dword [0x4a1284]
comiss xmm0, xmm1
jbe 0x410136
inc word [0x4ad004]
mov ax, word [0x4ad004]
movsd xmm0, qword [0x4ad628]
mov al, byte [edi + 0x49b250]
mov ecx, 0x9d63f782
mov byte [esi], al
movss xmm0, dword [0x4ad1ac]
subss xmm0, dword [0x4a0d28]
subss xmm0, dword [0x4a2824]
cvtps2pd xmm0, xmm0
movsd qword [0x4ad470], xmm0
movss xmm0, dword [0x4ad1ac]
mov eax, dword [0x4ae3fc]
subss xmm0, xmm3
movss dword [0x4ad1ac], xmm0
mov al, byte [eax + edi]
xor byte [esi], al
add dword [str.yu_], 0x10dd5aba
mov eax, dword [0x4ad5d0]
mov dword [0x4ad39c], eax
mov al, byte [edi + 0x49b251]
mov word [0x4ad49c], dx
mov byte [esi + 1], al
mov eax, dword [0x4ad620]
movsd xmm0, qword [0x4ad238]
movd xmm1, eax
cvtdq2pd xmm1, xmm1
subsd xmm1, xmm0
cvttsd2si eax, xmm1
mov dword [0x4ad620], eax
mov eax, dword [0x4ae3fc]
mov al, byte [eax + edi + 1]
xor byte [esi + 1], al
movsx eax, word [0x4ad634]
movsd xmm0, qword [0x4ad370]
sub ecx, eax
movd xmm1, ecx
mov ecx, 0xef7a8964
cvtdq2pd xmm1, xmm1
mulsd xmm0, xmm1
movsd qword [0x4ad370], xmm0
mov eax, dword [0x4ad120]
sub ecx, eax
inc dword [0x4ad120]
cmp ecx, 0x4bee4454
je 0x410250
dec dword [0x4ad654]
mov ecx, dword [0x4ad498]
mov eax, dword [0x4ad654]
inc dword [0x4ad498]
cmp eax, ecx
jle 0x410250
mov eax, dword [0x4ad228]
movss xmm0, dword [0x4ad490]
movd xmm1, eax
cvtdq2ps xmm1, xmm1
addss xmm0, xmm1
movss dword [0x4ad490], xmm0
movss xmm0, dword [0x4ad580]
add edi, 2
movss xmm1, dword [0x4a16c4]
subss xmm0, xmm3
movss dword [0x4ad580], xmm0
movss xmm0, dword [0x4ad580]
subss xmm1, xmm0
addss xmm1, dword [0x4a0df0]
cvttss2si eax, xmm1
mov word [0x4ad530], ax
cmp dword [0x4ad414], 0xd207e696
movzx ecx, word [esi]
je 0x4102ab
imul eax, dword [0x4ad584], 0x860b68b8
mov dword [0x4ad584], eax
mov ebx, ecx
lea eax, [ebx + 3]
push eax
lea eax, [edi + 0x49b250]
push eax
push esi
call fcn.0044cad0
dec word [0x4ad2dc]
mov ecx, 0xa0ff5279
movsx eax, word [0x4ad2dc]
add esp, 0xc
movsd xmm1, qword [0x4ad0f8]
movd xmm0, eax
mov eax, dword [0x4ad540]
sub ecx, eax
cvtdq2pd xmm0, xmm0
addsd xmm1, xmm0
movd xmm0, ecx
cvtdq2pd xmm0, xmm0
subsd xmm1, qword [0x4a2348]
ucomisd xmm1, xmm0
lahf
test ah, 0x44
jnp 0x41033c
dec word [0x4ad104]
mov ecx, 0xa5c64c09
dec word [0x4ad634]
movsx eax, word [0x4ad634]
sub ecx, eax
movsx eax, word [0x4ad104]
cmp eax, ecx
jge 0x41033c
movsx eax, word [0x4ad2f4]
mov dword [0x4ad5f4], eax
movss xmm2, dword [0x4ad560]
movss xmm1, dword [0x4ad1e4]
subss xmm1, dword [0x4a1668]
movss xmm0, dword [0x4ad560]
movss xmm3, dword [0x49ea54]
subss xmm0, xmm3
subss xmm1, dword [0x4a29b0]
movss dword [0x4ad560], xmm0
comiss xmm2, xmm1
jb 0x410392
movzx eax, word [0x4ad00c]
imul eax, eax, 0x846671d2
mov word [0x4ad00c], ax
jmp 0x4103a5
movzx eax, word [0x4ad544]
imul eax, eax, 0x15e508d7
mov word [0x4ad544], ax
movsd xmm0, qword [0x4ad240]
lea edx, [esi + 3]
mulsd xmm0, qword [0x4a03e0]
add edx, ebx
mov ecx, dword [0x4ae3fc]
add ecx, edi
movsd qword [0x4ad240], xmm0
movsd xmm0, qword [0x4a1b00]
movsd qword [0x4ad170], xmm0
cmp esi, edx
je 0x410438
sub ecx, esi
mov eax, dword [0x4ad584]
movsd xmm0, qword [0x4ad260]
movd xmm1, eax
cvtdq2pd xmm1, xmm1
addsd xmm0, xmm1
cvttsd2si eax, xmm0
mov dword [0x4ad584], eax
mov al, byte [ecx + esi]
xor byte [esi], al
inc esi
movss xmm0, dword [0x4ad098]
addss xmm0, xmm3
movss dword [0x4ad098], xmm0
movss xmm0, dword [0x4ad098]
mulss xmm0, dword [0x4ad050]
movss dword [0x4ad050], xmm0
cmp esi, edx
jne 0x4103e0
movzx eax, word [0x4ad0d8]
add eax, 0x4402ebf8
mov word [0x4ad0d8], ax
cmp dword [ebp + 0xc], ebx
je 0x4105ff
movsd xmm0, qword [0x4ad4b8]
movsd xmm2, qword [0x49ea58]
subsd xmm0, xmm2
movsd qword [0x4ad4b8], xmm0
movss xmm0, dword [0x4ad1b8]
cvtps2pd xmm1, xmm0
movsd xmm0, qword [0x4ad4b8]
mulsd xmm0, xmm1
cvtpd2ps xmm0, xmm0
movss dword [0x4ad1b8], xmm0
mov byte [edx], 0
mov ecx, dword [0x4ad4e8]
mov eax, dword [0x4ad498]
add eax, 0x7904aea4
add eax, ecx
cmp eax, 0x9ca1aa62
jne 0x4104c6
inc word [0x4ad104]
movsx eax, word [0x4ad104]
add eax, 0x5a55b969
mov dword [0x4ad5dc], eax
movsd xmm0, qword [0x4ad468]
movsx eax, word [0x4ad004]
movsd xmm1, qword [0x4a0a88]
subsd xmm1, xmm0
movd xmm0, eax
cvtdq2pd xmm0, xmm0
addsd xmm1, qword [0x49ef90]
ucomisd xmm1, xmm0
lahf
dec word [0x4ad004]
movsd xmm0, qword [0x4ad468]
subsd xmm0, xmm2
movsd qword [0x4ad468], xmm0
test ah, 0x44
jp 0x410538
movsx eax, word [0x4ad410]
mov ecx, 0xe39c5a5e
sub ecx, eax
mov eax, dword [0x4ad564]
imul eax, ecx
mov dword [0x4ad564], eax
inc word [0x4ad410]
movss xmm0, dword [0x4ad12c]
lea esi, [edx - 3]
mulss xmm0, dword [0x4a2afc]
mov edi, dword [edx - 3]
mov edx, 0x21ba
sub dword [ebp + 0xc], ebx
movss dword [0x4ad12c], xmm0
movsd xmm0, qword [0x4ad048]
addsd xmm0, qword [0x49f7a8]
movsd qword [0x4ad048], xmm0
movss xmm1, dword [0x4ad184]
movss xmm0, dword [0x4ad184]
addss xmm0, xmm3
movss dword [0x4ad184], xmm0
movss xmm0, dword [0x4a2960]
comiss xmm0, xmm1
jbe 0x4100a0
movss xmm0, dword [0x4ad3cc]
movss xmm1, dword [0x4a11a4]
subss xmm1, xmm0
movss xmm0, dword [0x4ad050]
subss xmm0, dword [0x4a2874]
subss xmm0, dword [0x4a2808]
ucomiss xmm1, xmm0
movss xmm0, dword [0x4ad3cc]
subss xmm0, xmm3
lahf
movss dword [0x4ad3cc], xmm0
test ah, 0x44
jnp 0x4100a0
add dword [0x4ad2a4], 0x5c94b365
jmp 0x4100a0
movsd xmm0, qword [0x4ad3a0]
mulsd xmm0, qword [0x49edc0]
mov eax, dword [ebp - 4]
pop edi
pop esi
pop ebx
movsd qword [0x4ad3a0], xmm0
mov esp, ebp
pop ebp
ret