Function at 0x10129ac4
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x44
push ebx
mov ebx, dword [0x101c0bb0]
push esi
mov esi, ecx
mov byte [ebp - 1], dl
push edi
mov eax, dword [ebx + 0x1a6c]
mov dword [ebp - 0x2c], esi
mov byte [eax + 0x84], 1
mov eax, dword [ebx + 0x1a6c]
mov dword [ebp - 0xc], eax
cmp byte [eax + 0x87], 0
jne 0x10129eaa
mov ecx, dword [eax + 0xc4]
xor edx, edx
mov eax, dword [eax + 0xcc]
push dword [eax + ecx*4 - 4]
mov ecx, esi
call fcn.100f1430
mov edi, eax
add esp, 4
mov dword [ebp - 0x10], edi
cmp dword [ebx + 0x1aa4], edi
jne 0x10129aa9
mov dword [ebx + 0x1aa8], edi
cmp dword [ebx + 0x1adc], edi
jne 0x10129ab8
mov byte [ebx + 0x1ae0], 1
mov eax, esi
cmp esi, 0xffffffff
jae 0x10129ad6
nop
mov cl, byte [eax]
test cl, cl
je 0x10129ad6
cmp cl, 0x23
jne 0x10129ad0
cmp byte [eax + 1], cl
je 0x10129ad6
inc eax
cmp eax, 0xffffffff
jb 0x10129ac0
movss xmm2, dword [ebx + 0x1930]
cmp esi, eax
jne 0x10129ae7
xorps xmm4, xmm4
jmp 0x10129b27
movss xmm3, dword [0x101afe18]
push 0
push eax
push esi
push ecx
mov ecx, dword [ebx + 0x192c]
lea eax, [ebp - 0x34]
mov dword [esp], 0xbf800000
push eax
call fcn.10104640
movss xmm0, dword [ebp - 0x34]
addss xmm0, dword [0x101afc28]
movss xmm2, dword [ebp - 0x30]
cvttss2si eax, xmm0
movd xmm4, eax
cvtdq2ps xmm4, xmm4
movss xmm7, dword [ebx + 0x1554]
xorps xmm0, xmm0
mov eax, dword [ebp - 0xc]
movaps xmm5, xmm7
movss xmm3, dword [ebx + 0x1930]
addss xmm5, xmm7
movss dword [ebp - 0x14], xmm4
movss xmm6, dword [eax + 0xd0]
movss xmm1, dword [eax + 0xd4]
movaps xmm4, xmm6
addss xmm3, xmm5
movss dword [ebp - 0x18], xmm1
movss dword [ebp - 8], xmm6
addss xmm5, xmm2
addss xmm4, xmm3
movss dword [ebp - 0x1c], xmm3
addss xmm1, xmm3
movss dword [ebp - 0x20], xmm4
movss xmm4, dword [ebp - 0x14]
comiss xmm4, xmm0
movss dword [ebp - 0x24], xmm1
jbe 0x10129b9d
movss xmm1, dword [ebx + 0x1568]
addss xmm1, xmm4
jmp 0x10129ba0
xorps xmm1, xmm1
movss xmm2, dword [ebp - 0x18]
addss xmm1, xmm3
movaps xmm0, xmm2
movss dword [ebp - 0x44], xmm6
addss xmm0, xmm5
movss dword [ebp - 0x40], xmm2
lea ecx, [ebp - 0x34]
addss xmm1, xmm6
movss dword [ebp - 0x38], xmm0
subss xmm0, xmm2
movss dword [ebp - 0x3c], xmm1
subss xmm1, xmm6
movss dword [ebp - 0x30], xmm0
movss dword [ebp - 0x34], xmm1
movaps xmm1, xmm7
call fcn.100e1660
push 0
mov edx, edi
lea ecx, [ebp - 0x44]
call fcn.100e1470
add esp, 4
test al, al
je 0x10129eaa
movss xmm0, dword [ebp - 0x20]
lea eax, [ebp - 2]
addss xmm0, dword [ebp - 8]
movss xmm1, dword [0x101afbec]
lea ecx, [ebp - 0x44]
mov edx, dword [ebp - 0x10]
push 0
push eax
mulss xmm0, xmm1
lea eax, [ebp - 3]
push eax
addss xmm0, xmm1
cvttss2si esi, xmm0
movd xmm0, esi
cvtdq2ps xmm0, xmm0
movss dword [ebp - 0x34], xmm0
movss xmm0, dword [ebp - 0x24]
addss xmm0, dword [ebp - 0x18]
mulss xmm0, xmm1
addss xmm0, xmm1
cvttss2si edi, xmm0
movd xmm0, edi
cvtdq2ps xmm0, xmm0
movss dword [ebp - 0x30], xmm0
movss xmm0, dword [ebp - 0x1c]
subss xmm0, dword [0x101afc38]
mulss xmm0, xmm1
movss dword [ebp - 8], xmm0
call fcn.1012e520
add esp, 0xc
mov byte [ebp - 4], al
test al, al
je 0x10129c99
mov ecx, dword [0x101c0bb0]
mov word [ecx + 0x1ab4], 0x101
mov ecx, dword [ecx + 0x1a6c]
or dword [ecx + 0x118], 4
mov edx, dword [ebp - 0x10]
lea ecx, [ebp - 0x44]
push 1
call fcn.100eded0
mov edx, dword [ebp - 0xc]
add esp, 4
cmp byte [ebp - 2], 0
mov eax, dword [edx + 0x284]
mov dword [ebp - 0x10], eax
mov al, byte [ebp - 3]
je 0x10129cc9
test al, al
je 0x10129cc9
mov ecx, 9
jmp 0x10129cd3
xor ecx, ecx
test al, al
setne cl
add ecx, 7
movss xmm1, dword [0x101afc38]
call fcn.100ef3f0
movss xmm7, dword [ebp - 8]
mov dword [ebp - 0x24], eax
test eax, 0xff000000
je 0x10129d38
xorps xmm0, xmm0
comiss xmm0, xmm7
jae 0x10129d38
push 0xf
push ecx
mov ecx, dword [ebp - 0x10]
lea eax, [ebp - 0x34]
mov dword [esp], 0x40bc7edd
xorps xmm3, xmm3
push eax
movaps xmm2, xmm7
call fcn.10104ee0
mov eax, dword [ebp - 0x10]
mov ecx, eax
push dword [ebp - 0x24]
push dword [eax + 0x54]
push dword [eax + 0x5c]
call fcn.10105050
mov eax, dword [ebp - 0x10]
movss xmm7, dword [ebp - 8]
mov edx, dword [ebp - 0xc]
mov dword [eax + 0x54], 0
cmp byte [ebp - 1], 0
je 0x10129d91
movss xmm1, dword [0x101afc38]
push 0x10
push ecx
mov ecx, 0x12
call fcn.100ef3f0
movss xmm0, dword [ebp - 0x1c]
add esp, 4
divss xmm0, dword [0x101afcdc]
mov ecx, dword [edx + 0x284]
push eax
movss xmm1, dword [0x101afc38]
movaps xmm2, xmm7
cvttss2si eax, xmm0
movd xmm0, eax
lea eax, [ebp - 0x34]
cvtdq2ps xmm0, xmm0
push eax
maxss xmm1, xmm0
subss xmm2, xmm1
call fcn.100f9d70
movss xmm1, dword [ebx + 0x155c]
comiss xmm1, dword [0x101afb04]
jbe 0x10129e32
movss xmm0, dword [0x101afc38]
movd xmm2, esi
cvtdq2ps xmm2, xmm2
push ecx
mov ecx, 6
movss dword [esp], xmm1
movaps xmm1, xmm0
addss xmm2, xmm0
push 0x10
movss dword [ebp - 0x28], xmm2
movd xmm2, edi
cvtdq2ps xmm2, xmm2
addss xmm2, xmm0
movss dword [ebp - 0x24], xmm2
call fcn.100ef3f0
mov esi, dword [ebp - 0xc]
movss xmm2, dword [ebp - 8]
push eax
lea eax, [ebp - 0x28]
mov ecx, dword [esi + 0x284]
push eax
call fcn.100f9e80
movss xmm0, dword [ebx + 0x155c]
movss xmm1, dword [0x101afc38]
push ecx
movss dword [esp], xmm0
mov ecx, 5
push 0x10
call fcn.100ef3f0
movss xmm2, dword [ebp - 8]
mov ecx, dword [esi + 0x284]
push eax
lea eax, [ebp - 0x34]
push eax
call fcn.100f9e80
cmp byte [ebx + 0x2efc], 0
je 0x10129e59
cmp byte [ebp - 1], 0
lea ecx, [ebp - 0x44]
mov eax, 0x101ad114
mov edx, 0x101ad110
push 0
cmove edx, eax
call fcn.100daf50
add esp, 4
movss xmm0, dword [ebp - 0x14]
comiss xmm0, dword [0x101afb04]
jbe 0x10129ea0
movss xmm0, dword [ebx + 0x1568]
xor edx, edx
addss xmm0, dword [ebp - 0x20]
mov ecx, dword [ebp - 0x2c]
movss dword [ebp - 0x34], xmm0
movss xmm0, dword [ebx + 0x1554]
addss xmm0, dword [ebp - 0x18]
movss dword [ebp - 0x30], xmm0
push dword [ebp - 0x30]
push dword [ebp - 0x34]
push 1
call fcn.100eec20
add esp, 0xc
mov al, byte [ebp - 4]
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
pop edi
pop esi
xor al, al
pop ebx
mov esp, ebp
pop ebp
ret