Function at 0x42881f
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
mov eax, 0x1e060
call fcn.00485cf0
push esi
push edi
mov esi, ecx
push 0
mov dword [esp + 0x30], esi
call fcn.004242af
pop ecx
mov ecx, esi
call fcn.0045717b
mov edi, eax
mov dword [esp + 0x1c], edi
test edi, edi
je 0x428cd6
push str._no_description_
push dword [esi + 0x6c2cc]
call fcn.004924de
pop ecx
pop ecx
mov ecx, dword [edi]
test eax, eax
jne 0x428886
push eax
push ecx
mov dword [esp], 0x3f800000
push eax
push 1
push eax
push eax
push edi
call dword [ecx + 0xac]
jmp 0x428cd6
push dword [esi + 0x8ec3d0]
push 0
push edi
call dword [ecx + 0x104]
mov eax, dword [edi]
push 0
push edi
call dword [eax + 0x170]
mov eax, dword [edi]
push 0
push edi
call dword [eax + 0x1ac]
mov eax, dword [edi]
push 0x342
push edi
call dword [eax + 0x164]
mov eax, dword [edi]
push 0
push 0x1b
push edi
call dword [eax + 0xe4]
mov eax, dword [edi]
push 2
push 5
push 0
push edi
call dword [eax + 0x114]
mov eax, dword [edi]
push 2
push 6
push 0
push edi
call dword [eax + 0x114]
mov eax, dword [edi]
push 2
push 7
push 0
push edi
call dword [eax + 0x114]
mov eax, dword [edi]
xor ecx, ecx
push 2
push 5
inc ecx
push ecx
push edi
call dword [eax + 0x114]
mov eax, dword [edi]
push 2
push 6
push 1
push edi
call dword [eax + 0x114]
mov eax, dword [edi]
push 2
push 7
push 1
push edi
call dword [eax + 0x114]
mov eax, dword [edi]
push 4
push 1
push 0
push edi
call dword [eax + 0x10c]
mov eax, dword [edi]
push 0
push 2
push 0
push edi
call dword [eax + 0x10c]
mov eax, dword [edi]
push 2
push 3
push 0
push edi
call dword [eax + 0x10c]
mov eax, dword [edi]
xor ecx, ecx
inc ecx
push ecx
push ecx
push ecx
push edi
call dword [eax + 0x10c]
mov eax, dword [edi]
push 2
push 4
push 0
push edi
call dword [eax + 0x10c]
mov eax, dword [edi]
push 0
push 5
push 0
push edi
call dword [eax + 0x10c]
mov eax, dword [edi]
xor ecx, ecx
inc ecx
push ecx
push 4
push ecx
push edi
call dword [eax + 0x10c]
mov eax, dword [esi + 0x6c2cc]
movss xmm1, dword [esi + 0x6c2c8]
cvtps2pd xmm1, xmm1
push 3
mov eax, dword [eax + 0x2bf5cc]
pop esi
push 1
pop ecx
movsd xmm0, qword [eax]
mov eax, dword [edi]
comisd xmm0, xmm1
cmova esi, ecx
push esi
push ecx
push 0
push edi
call dword [eax + 0x114]
mov eax, dword [edi]
push esi
push 2
push 0
push edi
call dword [eax + 0x114]
mov eax, dword [edi]
push esi
push 3
push 0
push edi
call dword [eax + 0x114]
mov esi, dword [esp + 0x2c]
cmp dword [esi + 0x6a834], 0
mov eax, dword [esi + 0x6c2cc]
mov eax, dword [eax + 0x2bf44c]
movsd xmm2, qword [eax]
cvtpd2ps xmm2, xmm2
movss dword [esp + 0x10], xmm2
jle 0x428a75
mov ecx, esi
call fcn.0045711b
cmp eax, 0x17
je 0x428a34
mov ecx, esi
call fcn.0045711b
cmp eax, 0x18
je 0x428a34
mov ecx, esi
call fcn.0045711b
cmp eax, 0x19
je 0x428a34
mov ecx, esi
call fcn.0045711b
cmp eax, 0x1a
jne 0x428a6f
movss xmm0, dword [0x4c14b4]
movss xmm2, dword [esp + 0x10]
comiss xmm0, xmm2
jbe 0x428a75
movd xmm0, dword [esi + 0x6a834]
movss xmm1, dword [0x4c15f8]
cvtdq2ps xmm0, xmm0
subss xmm1, xmm0
mulss xmm1, dword [0x4c13ec]
minss xmm1, xmm2
movaps xmm2, xmm1
jmp 0x428a75
movss xmm2, dword [esp + 0x10]
mulss xmm2, dword [0x4c1608]
and dword [esp + 0x14], 0
cvttss2si ecx, xmm2
movzx eax, cl
or ecx, 0xffffff00
shl ecx, 8
or ecx, eax
shl ecx, 8
or ecx, eax
mov eax, dword [esi + 0x6a828]
mov dword [esp + 0x30], ecx
lea eax, [eax*2 + 2]
test eax, eax
jle 0x428ad7
mov edi, dword [esp + 0x14]
xor edx, edx
mov eax, dword [esi + 0x8ec438]
lea edx, [edx + 0x28]
inc edi
mov dword [eax + edx - 0x1c], ecx
mov eax, dword [esi + 0x6a828]
lea eax, [eax*2 + 2]
cmp edi, eax
jl 0x428ab4
mov edi, dword [esp + 0x1c]
cmp byte [ebp + 0xc], 0
mov eax, dword [edi]
mov eax, dword [eax + 0xe4]
je 0x428b1d
xor ecx, ecx
inc ecx
push ecx
push 0x1b
push edi
call eax
cmp byte [ebp + 0x10], 0
mov eax, dword [edi]
mov eax, dword [eax + 0xe4]
je 0x428b07
push 6
push 0x13
push edi
call eax
push 5
jmp 0x428b10
push 5
push 0x13
push edi
call eax
push 6
mov eax, dword [edi]
push 0x14
push edi
call dword [eax + 0xe4]
jmp 0x428b24
push 0
push 0x1b
push edi
call eax
mov ecx, esi
call fcn.00457161
mov ecx, 0x400
cmp dword [eax + 0xb4], ecx
jae 0x428b45
mov ecx, esi
call fcn.00457161
mov ecx, dword [eax + 0xb4]
lea eax, [ecx - 4]
xor ecx, ecx
mov dword [esp + 0x28], eax
mov eax, dword [esi + 0x6a82c]
imul eax, dword [esi + 0x6a828]
mov dword [esp + 0x10], ecx
imul eax, eax, 6
mov dword [esp + 0x14], eax
test eax, eax
jle 0x428cc9
xor eax, eax
xor edx, edx
mov dword [esp + 0x18], edx
mov dword [esp + 0xc], eax
cmp dword [esp + 0x28], eax
jle 0x428cbf
cmp ecx, dword [esp + 0x14]
jge 0x428ca0
mov eax, dword [esi + 0x8ec434]
mov edx, dword [esp + 0xc]
mov dword [esp + 0x34], eax
imul eax, edx, 0x28
push 3
mov dword [esp + 0x24], eax
mov eax, dword [esi + 0x8ec444]
lea edi, [eax + ecx*4]
pop eax
add ecx, eax
mov dword [esp + 0x24], eax
mov eax, dword [esp + 0x30]
mov dword [esp + 0xc], edi
mov dword [esp + 0x10], ecx
imul esi, dword [edi], 0x28
lea edi, [esp + 0x40]
add dword [esp + 0xc], 4
push 0xa
pop ecx
push 0xa
add esi, dword [esp + 0x38]
rep movsd dword es:[edi], dword [esi]
lea edi, [esp + 0x6c]
mov dword [esp + 0x3c], edx
add edi, dword [esp + 0x24]
lea esi, [esp + 0x44]
pop ecx
rep movsd dword es:[edi], dword [esi]
mov edi, dword [esp + 0xc]
inc edx
imul ecx, edx, 0x28
mov dword [esp + 0x3c], edx
mov dword [esp + 0x20], ecx
mov esi, dword [esp + ecx + 0x4c]
movss xmm0, dword [esp + ecx + 0x44]
xor esi, eax
mulss xmm0, dword [0x4bc5a8]
and esi, 0xffffff
xor esi, dword [esp + ecx + 0x4c]
sub dword [esp + 0x24], 1
mov dword [esp + ecx + 0x4c], esi
movss dword [esp + ecx + 0x44], xmm0
jne 0x428bc1
cmp byte [ebp + 0x14], 0
mov dword [esp + 0xc], edx
mov edx, dword [esp + 0x18]
je 0x428c89
mov eax, dword [esp + 0xc]
add eax, 0xfffffffd
mov edi, eax
imul eax, eax, 0x28
mov ecx, dword [esp + eax + 0x74]
imul eax, dword [esp + 0x38], 0x28
cmp byte [ebp + 0x18], 0
je 0x428c67
and ecx, dword [esp + eax + 0x4c]
and ecx, esi
mov esi, 0xff000000
and ecx, esi
cmp ecx, esi
setb cl
jmp 0x428c76
or esi, dword [esp + eax + 0x4c]
or esi, ecx
test esi, 0xff000000
seta cl
test cl, cl
lea eax, [edx + 1]
cmovne edi, dword [esp + 0x3c]
cmovne edx, eax
mov dword [esp + 0xc], edi
jmp 0x428c8a
inc edx
mov esi, dword [esp + 0x2c]
mov ecx, dword [esp + 0x10]
mov dword [esp + 0x18], edx
cmp edx, dword [esp + 0x28]
jl 0x428b84
mov edi, dword [esp + 0x1c]
test edx, edx
jle 0x428cbf
mov eax, dword [edi]
lea ecx, [esp + 0x68]
push 0x28
push ecx
push edx
push 4
push edi
call dword [eax + 0x14c]
mov ecx, dword [esp + 0x10]
cmp ecx, dword [esp + 0x14]
jl 0x428b6e
mov eax, dword [edi]
push 0
push 0x1b
push edi
call dword [eax + 0xe4]
pop edi
pop esi
mov esp, ebp
pop ebp
ret 0x14