Function at 0x10042760
Capabilities:
Encode data using xor

Disassembly:
push esi
push edi
push ebx
push ebp
sub esp, 0x10
mov eax, dword [esp + 0x24]
pxor xmm3, xmm3
mov edi, dword [esp + 0x28]
mov edx, dword [eax + 0x1bc]
lea ecx, [eax + 0x80]
mov ebp, dword [edi + 4]
mov ebx, dword [edi]
mov edi, dword [edi + 8]
mov dword [eax + edx*4], 0
mov esi, dword [eax + 0x1b8]
mov eax, edi
sub eax, esi
cmp esi, edi
jl 0x1004293f
mov edi, dword [esp + 0x28]
mov esi, 0x3f000000
mov dword [esp], esi
neg eax
movss xmm0, dword [esp]
mulss xmm0, dword [edi + 0xc]
mov edi, eax
shl edi, 0x17
neg edi
add edi, 0x3f800000
mov dword [esp + 4], edi
mov edi, dword [esp + 0x24]
movss xmm2, dword [esp + 4]
mov dword [esp + 8], esi
mulss xmm2, dword [edi + 0x1b4]
mulss xmm2, dword [esp + 8]
addss xmm2, xmm0
comiss xmm2, xmm3
jbe 0x10042ad7
add eax, 7
mov esi, 0x3c
cmp eax, 0x3c
cmovl esi, eax
mov eax, 0xffffffc4
cmp esi, 0xffffffc4
cmovge eax, esi
test ebp, ebp
jbe 0x10042909
mov esi, ebp
movaps xmm0, xmm3
shr esi, 1
mov dword [esp + 8], esi
test esi, esi
jbe 0x10042b27
mov edi, eax
xor esi, esi
shl edi, 0x17
neg edi
add edi, 0x3f800000
mov dword [esp], ebp
mov dword [esp + 4], eax
mov eax, 0x3c000000
mov ebp, edi
mov edi, dword [esp + 8]
nop word [eax + eax]
mov dword [esp + 8], eax
mov dword [esp + 0xc], ebp
movss xmm1, dword [esp + 8]
movss xmm7, dword [esp + 0xc]
movaps xmm5, xmm1
movaps xmm4, xmm7
mulss xmm5, dword [ebx + esi*8]
mulss xmm1, dword [ebx + esi*8 + 4]
mulss xmm4, dword [ecx + esi*8]
mulss xmm7, dword [ecx + esi*8 + 4]
subss xmm5, xmm4
subss xmm1, xmm7
movaps xmm6, xmm5
movaps xmm4, xmm1
xorps xmm6, xmmword [0x1038a630]
inc esi
xorps xmm4, xmmword [0x1038a630]
cmp esi, edi
maxss xmm6, xmm5
maxss xmm4, xmm1
addss xmm0, xmm6
addss xmm3, xmm4
jb 0x10042850
mov eax, dword [esp + 4]
lea esi, [esi + esi + 1]
mov ebp, dword [esp]
addss xmm0, xmm3
dec esi
cmp esi, ebp
jae 0x1004290c
shl eax, 0x17
neg eax
add eax, 0x3f800000
mov dword [esp + 8], 0x3c000000
mov dword [esp + 0xc], eax
movss xmm3, dword [esp + 8]
movss xmm1, dword [esp + 0xc]
mulss xmm3, dword [ebx + esi*4]
mulss xmm1, dword [ecx + esi*4]
subss xmm3, xmm1
movaps xmm4, xmm3
xorps xmm4, xmmword [0x1038a630]
maxss xmm4, xmm3
addss xmm0, xmm4
jmp 0x1004290c
movaps xmm0, xmm3
mov dword [esp], 0x3f000000
mulss xmm0, dword [esp]
comiss xmm2, xmm0
ja 0x1004292d
mov eax, dword [esp + 0x24]
mov dword [eax + edx*4], 0x3f800000
jmp 0x10042ad7
divss xmm0, xmm2
mov eax, dword [esp + 0x24]
movss dword [eax + edx*4], xmm0
jmp 0x10042ad7
mov edi, 0x3c
lea esi, [eax + 1]
cmp esi, 0x3c
mov dword [esp + 4], 0x3f000000
cmovge esi, edi
mov edi, 0xffffffc4
cmp esi, 0xffffffc4
movss xmm0, dword [esp + 4]
cmovl esi, edi
neg esi
shl esi, 0x17
add esi, 0x3f800000
mov dword [esp], esi
mov esi, dword [esp + 0x28]
movss xmm2, dword [esp]
mulss xmm2, dword [esi + 0xc]
mov esi, dword [esp + 0x24]
mulss xmm0, dword [esi + 0x1b4]
addss xmm2, xmm0
comiss xmm2, xmm3
jbe 0x10042ad7
add eax, 7
mov esi, 0x3c
cmp eax, 0x3c
cmovl esi, eax
mov eax, 0xffffffc4
cmp esi, 0xffffffc4
cmovge eax, esi
test ebp, ebp
jbe 0x10042aa9
mov esi, ebp
movaps xmm1, xmm3
shr esi, 1
mov dword [esp + 8], esi
test esi, esi
jbe 0x10042b31
mov edi, eax
xor esi, esi
neg edi
shl edi, 0x17
add edi, 0x3f800000
mov dword [esp], ebp
mov dword [esp + 4], eax
mov eax, 0x3c000000
mov ebp, edi
mov edi, dword [esp + 8]
mov dword [esp + 8], ebp
mov dword [esp + 0xc], eax
movss xmm0, dword [esp + 8]
movss xmm7, dword [esp + 0xc]
movaps xmm5, xmm0
movaps xmm4, xmm7
mulss xmm5, dword [ebx + esi*8]
mulss xmm0, dword [ebx + esi*8 + 4]
mulss xmm4, dword [ecx + esi*8]
mulss xmm7, dword [ecx + esi*8 + 4]
subss xmm5, xmm4
subss xmm0, xmm7
movaps xmm6, xmm5
movaps xmm4, xmm0
xorps xmm6, xmmword [0x1038a630]
inc esi
xorps xmm4, xmmword [0x1038a630]
cmp esi, edi
maxss xmm6, xmm5
maxss xmm4, xmm0
addss xmm1, xmm6
addss xmm3, xmm4
jb 0x100429f0
mov eax, dword [esp + 4]
lea esi, [esi + esi + 1]
mov ebp, dword [esp]
addss xmm1, xmm3
dec esi
cmp esi, ebp
jae 0x10042aac
neg eax
shl eax, 0x17
add eax, 0x3f800000
mov dword [esp + 8], eax
mov dword [esp + 0xc], 0x3c000000
movss xmm3, dword [esp + 8]
movss xmm0, dword [esp + 0xc]
mulss xmm3, dword [ebx + esi*4]
mulss xmm0, dword [ecx + esi*4]
subss xmm3, xmm0
movaps xmm4, xmm3
xorps xmm4, xmmword [0x1038a630]
maxss xmm4, xmm3
addss xmm1, xmm4
jmp 0x10042aac
movaps xmm1, xmm3
mov dword [esp], 0x3f000000
mulss xmm1, dword [esp]
comiss xmm2, xmm1
ja 0x10042aca
mov eax, dword [esp + 0x24]
mov dword [eax + edx*4], 0x3f800000
jmp 0x10042ad7
divss xmm1, xmm2
mov eax, dword [esp + 0x24]
movss dword [eax + edx*4], xmm1
inc edx
cmp edx, 0x20
jb 0x10042aed
mov eax, dword [esp + 0x24]
mov dword [eax + 0x1bc], 0
jmp 0x10042af7
mov eax, dword [esp + 0x24]
mov dword [eax + 0x1bc], edx
shl ebp, 2
push ebp
push ebx
push ecx
call fcn.100182a0
add esp, 0xc
mov edx, dword [esp + 0x28]
mov ebx, dword [esp + 0x24]
mov eax, dword [edx + 8]
mov ecx, dword [edx + 0xc]
mov dword [ebx + 0x1b8], eax
mov dword [ebx + 0x1b4], ecx
add esp, 0x10
pop ebp
pop ebx
pop edi
pop esi
ret
mov esi, 1
jmp 0x100428c0
mov esi, 1
jmp 0x10042a60