Function at 0x100c0120
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x2c
mov eax, dword [0x100f1040]
xor eax, ebp
mov dword [ebp - 4], eax
mov eax, dword [0x102d05a8]
mov ecx, eax
mov edx, dword [0x102d05ac]
push ebx
push esi
push edi
cmp eax, edx
je 0x100c0150
cmp dword [ecx], 2
je 0x100c0150
add ecx, 8
cmp ecx, edx
jne 0x100c0144
cmp ecx, edx
je 0x100c0178
mov esi, dword [0x102d0654]
mov ecx, dword [0x102d0650]
cmp ecx, esi
je 0x100c0178
cmp dword [ecx], 1
je 0x100c0170
add ecx, 8
cmp ecx, esi
jne 0x100c0164
mov byte [ebp - 5], 1
cmp ecx, esi
jne 0x100c017c
mov byte [ebp - 5], 0
mov esi, dword [0x1044b16c]
cmp esi, dword [0x1044b170]
je 0x100c04d8
cmp eax, edx
je 0x100c04d8
cmp dword [eax], 1
je 0x100c01a2
add eax, 8
cmp eax, edx
jne 0x100c0196
cmp eax, edx
je 0x100c04d8
mov ecx, dword [0x1044b170]
mov eax, 0x2aaaaaab
sub ecx, esi
mov dword [ebp - 0x18], 0
imul ecx
sar edx, 2
mov eax, edx
shr eax, 0x1f
add eax, edx
je 0x100c04d8
xor ebx, ebx
mov dword [ebp - 0x1c], ebx
nop word [eax + eax]
mov eax, dword [0x1044a544]
lea edi, [ebx + esi]
vmovss xmm0, dword [eax]
vsubss xmm0, xmm0, dword [ebx + esi + 0x10]
call fcn.1002e220
vmovss xmm1, dword [0x100e51c4]
vcomiss xmm0, xmm1
jbe 0x100c0219
vmovss xmm0, dword [edi + 0x14]
vsubss xmm0, xmm0, xmm1
vmovss dword [edi + 0x14], xmm0
mov esi, dword [0x1044b16c]
vxorps xmm0, xmm0, xmm0
vcomiss xmm0, dword [edi + 0x14]
jb 0x100c0248
mov eax, dword [0x1044b170]
lea edx, [ebx + esi]
lea ecx, [edx + 0x18]
sub eax, ecx
push eax
push ecx
push edx
call sub.VCRUNTIME140.dll_memmove
add esp, 0xc
sub dword [0x1044b170], 0x18
jmp 0x100c04a4
mov ecx, dword [0x1044a4e4]
vmovss xmm0, dword [ebx + esi]
vmovss dword [ebp - 0x14], xmm0
vmovss xmm0, dword [ebx + esi + 4]
mov eax, dword [ecx]
vmovss dword [ebp - 0x10], xmm0
vmovss xmm0, dword [ebx + esi + 8]
vmovss dword [ebp - 0xc], xmm0
mov eax, dword [eax + 0x94]
call eax
vmovss xmm5, dword [ebp - 0x10]
vmovss xmm4, dword [ebp - 0x14]
vmovss xmm6, dword [ebp - 0xc]
mov esi, eax
vmulss xmm0, xmm4, dword [esi + 0x30]
vmulss xmm1, xmm5, dword [esi + 0x34]
vaddss xmm1, xmm1, xmm0
vmulss xmm0, xmm6, dword [esi + 0x38]
vaddss xmm0, xmm1, xmm0
vaddss xmm7, xmm0, dword [esi + 0x3c]
vmovss xmm0, dword [0x100e50f4]
vcomiss xmm0, xmm7
ja 0x100c04a4
vmulss xmm1, xmm5, dword [esi + 4]
vmulss xmm0, xmm4, dword [esi]
mov eax, dword [0x103356c8]
vaddss xmm1, xmm1, xmm0
vmulss xmm0, xmm6, dword [esi + 8]
vaddss xmm0, xmm1, xmm0
vaddss xmm0, xmm0, dword [esi + 0xc]
vdivss xmm1, xmm0, xmm7
vxorps xmm0, xmm0, xmm0
vcvtsi2ss xmm0, xmm0, eax
vmulss xmm0, xmm1, xmm0
vmulss xmm1, xmm0, dword [0x100e517c]
cdq
sub eax, edx
vxorps xmm0, xmm0, xmm0
sar eax, 1
vcvtsi2ss xmm0, xmm0, eax
mov eax, dword [0x103356cc]
vaddss xmm3, xmm1, xmm0
vmulss xmm1, xmm5, dword [esi + 0x14]
vmulss xmm0, xmm4, dword [esi + 0x10]
vaddss xmm1, xmm1, xmm0
vmulss xmm0, xmm6, dword [esi + 0x18]
vaddss xmm0, xmm1, xmm0
vaddss xmm0, xmm0, dword [esi + 0x1c]
vdivss xmm1, xmm0, xmm7
cdq
vxorps xmm0, xmm0, xmm0
vcvtsi2ss xmm0, xmm0, dword [0x103356cc]
sub eax, edx
sar eax, 1
vxorps xmm2, xmm2, xmm2
vmulss xmm0, xmm1, xmm0
vmulss xmm0, xmm0, dword [0x100e517c]
vcvtsi2ss xmm2, xmm2, eax
vcvttss2si eax, dword [edi + 0x14]
vsubss xmm0, xmm2, xmm0
movzx ecx, al
vcvttss2si edx, xmm3
vcvttss2si ebx, xmm0
shl ecx, 0x18
cmp byte [ebp - 5], 0
mov dword [ebp - 0x20], edx
mov dword [ebp - 0xc], ebx
je 0x100c0390
movzx esi, byte [0x1044e316]
movzx eax, byte [0x1044e315]
shl esi, 8
or esi, eax
movzx eax, byte [0x1044e314]
shl esi, 8
or esi, eax
or esi, ecx
jmp 0x100c0398
mov esi, ecx
or esi, 0xc8c8c8
mov ecx, dword [0x1044a4f0]
lea edi, [edx - 4]
push esi
add ebx, 4
mov eax, dword [ecx]
mov eax, dword [eax + 0x38]
call eax
mov ecx, dword [0x1044a4f0]
vxorps xmm0, xmm0, xmm0
vcvtsi2ss xmm0, xmm0, ebx
vcvttss2si eax, xmm0
vaddss xmm0, xmm0, dword [0x100e5230]
mov dword [ebp - 0x10], eax
push dword [ebp - 0x10]
mov eax, dword [ecx]
vxorps xmm1, xmm1, xmm1
vcvtsi2ss xmm1, xmm1, edi
vcvttss2si edx, xmm1
mov eax, dword [eax + 0x4c]
vcvttss2si edi, xmm0
vsubss xmm0, xmm1, dword [0x100e5230]
push edx
vcvttss2si ebx, xmm0
push edi
push ebx
mov dword [ebp - 0x14], edx
mov dword [ebp - 0x28], edi
call eax
mov ecx, dword [0x1044a4f0]
mov edi, dword [ebp - 0xc]
push esi
add edi, 0xfffffffc
mov eax, dword [ecx]
mov eax, dword [eax + 0x38]
call eax
mov ecx, dword [0x1044a4f0]
vxorps xmm0, xmm0, xmm0
vcvtsi2ss xmm0, xmm0, edi
vcvttss2si edi, xmm0
vsubss xmm0, xmm0, dword [0x100e5230]
mov eax, dword [ecx]
push edi
push dword [ebp - 0x14]
vcvttss2si edx, xmm0
mov eax, dword [eax + 0x4c]
push edx
push ebx
mov dword [ebp - 0xc], edi
mov dword [ebp - 0x24], edx
call eax
mov ecx, dword [0x1044a4f0]
mov edi, dword [ebp - 0x20]
push esi
add edi, 4
mov eax, dword [ecx]
mov eax, dword [eax + 0x38]
call eax
mov ecx, dword [0x1044a4f0]
push dword [ebp - 0xc]
vxorps xmm0, xmm0, xmm0
vcvtsi2ss xmm0, xmm0, edi
mov eax, dword [ecx]
vcvttss2si ebx, xmm0
vaddss xmm0, xmm0, dword [0x100e5230]
push ebx
push dword [ebp - 0x24]
mov eax, dword [eax + 0x4c]
vcvttss2si edi, xmm0
push edi
call eax
mov ecx, dword [0x1044a4f0]
push esi
mov eax, dword [ecx]
mov eax, dword [eax + 0x38]
call eax
push dword [ebp - 0x10]
mov ecx, dword [0x1044a4f0]
push ebx
push dword [ebp - 0x28]
mov eax, dword [ecx]
push edi
mov eax, dword [eax + 0x4c]
call eax
mov ebx, dword [ebp - 0x1c]
mov ecx, dword [0x1044b170]
mov eax, 0x2aaaaaab
mov esi, dword [0x1044b16c]
add ebx, 0x18
mov edi, dword [ebp - 0x18]
sub ecx, esi
imul ecx
inc edi
mov dword [ebp - 0x1c], ebx
sar edx, 2
mov eax, edx
mov dword [ebp - 0x18], edi
shr eax, 0x1f
add eax, edx
cmp edi, eax
jb 0x100c01e0
mov ecx, dword [ebp - 4]
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.100cb1b9
mov esp, ebp
pop ebp
ret