Function at 0x100c3ef0
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x144
mov eax, dword [0x1011904c]
xor eax, ebp
mov dword [ebp - 4], eax
mov ecx, dword [0x10119b60]
or eax, 0xffffffff
push ebx
xorps xmm1, xmm1
mov dword [ebp - 0x110], eax
or eax, eax
mov dword [ebp - 0x1c], 0
mov dword [ebp - 0x18], 0
xorps xmm0, xmm0
mov dword [ebp - 0x14], 0
mov dword [ebp - 0x10], 0
mov dword [ebp - 0xc], 0
mov dword [ebp - 8], 0
movss dword [ebp - 0x108], xmm1
movss dword [ebp - 0x10c], xmm1
mov dword [ebp - 0xc0], eax
mov byte [ebp - 0x40], 1
push esi
push edi
movups xmmword [ebp - 0x9c], xmm0
test ecx, ecx
je 0x100c4794
cmp byte [0x10122324], 0
je 0x100c4794
cmp byte [0x10119b64], 0
jne 0x100c3fad
mov eax, dword [0x101430b4]
cmp eax, dword [0x101430b8]
je 0x100c4794
mov dword [0x101430b8], eax
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.100c6a45
mov esp, ebp
pop ebp
ret
mov esi, dword [0x101430b8]
sub esi, dword [0x101430b4]
sar esi, 5
mov dword [ebp - 0xb8], esi
test esi, esi
je 0x100c4794
movsd xmm0, qword [0x10108ab8]
mov ebx, esi
mov eax, dword [0x101427d4]
movsd qword [ebp - 0x138], xmm0
add eax, 0xffffffc2
movsd xmm0, qword [0x10108af0]
xor eax, 0x9e4a2219
movsd qword [ebp - 0x140], xmm0
movss xmm0, dword [ebp - 0x44]
movss dword [ebp - 0x124], xmm0
movss xmm0, dword [ebp - 0x48]
movd xmm2, dword [eax + ecx]
mov ecx, esi
mov eax, dword [0x101425f4]
movss dword [ebp - 0x120], xmm0
movss xmm0, dword [ebp - 0x4c]
movss dword [ebp - 0x11c], xmm0
movss xmm0, dword [ebp - 0x50]
movss dword [ebp - 0x118], xmm0
movss xmm0, dword [ebp - 0x58]
movss dword [ebp - 0xe8], xmm0
movss xmm0, dword [ebp - 0x68]
movss dword [ebp - 0xf4], xmm0
movss xmm0, dword [ebp - 0x6c]
movss dword [ebp - 0xf0], xmm0
movss xmm0, dword [ebp - 0x70]
movss dword [ebp - 0xec], xmm0
movss xmm0, dword [ebp - 0x74]
movss dword [ebp - 0xe4], xmm0
movss xmm0, dword [ebp - 0x90]
cvtdq2ps xmm2, xmm2
shl ecx, 5
movss dword [ebp - 0x104], xmm0
movss xmm0, dword [ebp - 0x94]
mulss xmm2, dword [eax + 0x20]
mov eax, dword [ebp - 0x54]
movss dword [ebp - 0x100], xmm0
movss xmm0, dword [ebp - 0x98]
movss dword [ebp - 0xfc], xmm0
movss xmm0, dword [ebp - 0x9c]
movss dword [ebp - 0xc4], xmm2
mov dword [ebp - 0x114], eax
movss dword [ebp - 0xf8], xmm0
nop word [eax + eax]
mov edi, dword [0x101430b4]
sub ecx, 0x20
mov edx, ebx
mov dword [ebp - 0xb4], ecx
dec ebx
mov dword [ebp - 0xbc], ebx
add edi, ecx
je 0x100c478c
mov ecx, dword [edi + 0x18]
movaps xmm0, xmm2
mov eax, dword [0x101425f4]
movd xmm1, ecx
cvtdq2ps xmm1, xmm1
mulss xmm1, dword [eax + 0x20]
subss xmm0, xmm1
call fcn.10028290
comiss xmm0, dword [0x101224d0]
jbe 0x100c4199
mov ebx, dword [0x101430b8]
lea esi, [edi + 0x20]
cmp esi, ebx
je 0x100c4187
lea ecx, [edi + 0x14]
lea edx, [edi + 0x34]
nop dword [eax]
mov eax, dword [esi]
lea edi, [edi + 0x20]
mov dword [edi - 0x20], eax
lea ecx, [ecx + 0x20]
mov eax, dword [edx - 0x10]
lea edx, [edx + 0x20]
mov dword [ecx - 0x30], eax
add esi, 0x20
mov eax, dword [edx - 0x2c]
mov dword [ecx - 0x2c], eax
mov eax, dword [edx - 0x28]
mov dword [ecx - 0x28], eax
mov eax, dword [edx - 0x24]
mov dword [ecx - 0x24], eax
mov eax, dword [edx - 0x20]
mov dword [ecx - 0x20], eax
mov eax, dword [edx - 0x1c]
mov dword [ecx - 0x1c], eax
movzx eax, byte [edx - 0x18]
mov byte [ecx - 0x18], al
movzx eax, byte [edx - 0x17]
mov byte [ecx - 0x17], al
cmp esi, ebx
jne 0x100c4140
sub dword [0x101430b8], 0x20
mov ebx, dword [ebp - 0xbc]
jmp 0x100c4780
cmp byte [edi + 0x1c], 0
jne 0x100c4786
lea eax, [esi - 1]
cmp ebx, eax
jne 0x100c41ae
mov al, 1
jmp 0x100c41bd
cmp edx, esi
jae 0x100c41bb
cmp ecx, dword [edi + 0x38]
je 0x100c41bb
mov al, 1
jmp 0x100c41bd
xor al, al
test byte [0x1014834c], 1
jne 0x100c41eb
or dword [0x1014834c], 1
mov dword [0x10148340], 0
mov dword [0x10148344], 0
mov dword [0x10148348], 0xc0000000
test al, al
je 0x100c4786
movss xmm0, dword [edi + 0xc]
movss dword [ebp - 0x1c], xmm0
movss xmm1, dword [edi + 0x10]
movss dword [ebp - 0x18], xmm1
movss xmm2, dword [edi + 0x14]
movss dword [ebp - 0x14], xmm2
movss xmm4, dword [edi]
movss xmm3, dword [edi + 4]
movaps xmm5, xmm4
subss xmm5, xmm0
movss dword [ebp - 0x128], xmm0
movaps xmm6, xmm3
movss dword [ebp - 0xbc], xmm2
movss xmm2, dword [edi + 8]
subss xmm6, xmm1
subss xmm4, xmm0
movss dword [ebp - 0x12c], xmm1
subss xmm3, xmm1
movaps xmm7, xmm2
subss xmm7, dword [ebp - 0xbc]
subss xmm2, dword [ebp - 0xbc]
movaps xmm1, xmm5
movaps xmm0, xmm6
mulss xmm0, xmm6
mulss xmm1, xmm5
addss xmm0, xmm1
movaps xmm1, xmm7
mulss xmm1, xmm7
addss xmm0, xmm1
call fcn.100194b0
mulss xmm3, xmm3
movaps xmm1, xmm0
addss xmm1, dword [0x101089e0]
mulss xmm4, xmm4
mulss xmm2, xmm2
addss xmm3, xmm4
addss xmm3, xmm2
movaps xmm0, xmm3
call fcn.100194b0
divss xmm5, xmm1
mov eax, dword [0x101225b4]
movss xmm2, dword [ebp - 0x128]
movss xmm3, dword [ebp - 0x12c]
mulss xmm5, xmm0
divss xmm6, xmm1
addss xmm5, xmm2
mulss xmm6, xmm0
divss xmm7, xmm1
movss dword [ebp - 0x10], xmm5
addss xmm6, xmm3
mulss xmm7, xmm0
movss xmm0, dword [ebp - 0xbc]
movss dword [ebp - 0xc], xmm6
addss xmm7, xmm0
movss dword [ebp - 8], xmm7
sub eax, 0
je 0x100c44b6
sub eax, 1
jne 0x100c44ef
movaps xmm1, xmm2
movss dword [ebp - 0x104], xmm5
addss xmm1, dword [0x10148340]
movss dword [ebp - 0x108], xmm6
mov eax, 0x10
movss dword [ebp - 0x10c], xmm7
mov dword [ebp - 0xd0], 0x9ddec9df
mov dword [ebp - 0xcc], 0xd8c1da82
movss dword [ebp - 0xf8], xmm1
movaps xmm1, xmm3
addss xmm1, dword [0x10148344]
mov byte [ebp - 0xc8], 0xac
movss dword [ebp - 0xfc], xmm1
movss xmm1, dword [0x10148348]
addss xmm1, xmm0
movaps xmm0, xmmword [0x10109180]
pxor xmm0, xmmword [0x101095e0]
movups xmmword [ebp - 0xe0], xmm0
movss dword [ebp - 0x100], xmm1
xor byte [ebp + eax - 0xe0], 0xac
inc eax
cmp eax, 0x19
jb 0x100c4393
mov ecx, dword [0x101425d0]
lea edx, [ebp - 0xe0]
push edx
mov eax, dword [ecx]
mov eax, dword [eax + 8]
call eax
movaps xmm0, xmmword [0x101095e0]
pxor xmm0, xmmword [0x10109180]
mov dword [ebp - 0xc0], eax
mov eax, 0x10
mov dword [ebp - 0xd0], 0x9ddec9df
mov dword [ebp - 0xcc], 0xd8c1da82
mov byte [ebp - 0xc8], 0xac
movups xmmword [ebp - 0xe0], xmm0
xor byte [ebp + eax - 0xe0], 0xac
inc eax
cmp eax, 0x19
jb 0x100c43f1
movss xmm0, dword [0x10108b10]
xorps xmm1, xmm1
mov eax, dword [0x101223c8]
movss dword [ebp - 0xec], xmm0
movss xmm0, dword [0x101224d0]
mulss xmm0, dword [0x10108a78]
movzx ecx, al
shr eax, 8
movzx eax, al
movss dword [ebp - 0xf4], xmm0
movss dword [ebp - 0xf0], xmm0
movaps xmm0, xmmword [0x10108ce0]
movups xmmword [ebp - 0x64], xmm0
mov dword [ebp - 0x114], 0
movd xmm0, ecx
cvtdq2ps xmm0, xmm0
mov dword [ebp - 0x110], 2
mov byte [ebp - 0x40], 1
movss dword [ebp - 0xe4], xmm1
movss dword [ebp - 0x11c], xmm0
movd xmm0, eax
movzx eax, byte [0x101223ca]
cvtdq2ps xmm0, xmm0
movss dword [ebp - 0x118], xmm1
movss dword [ebp - 0x120], xmm0
movd xmm0, eax
cvtdq2ps xmm0, xmm0
movss dword [ebp - 0x124], xmm0
movss xmm0, dword [ebp - 0x58]
movss dword [ebp - 0xe8], xmm0
jmp 0x100c44ef
mov ecx, dword [0x101425d4]
movzx eax, byte [0x101223ca]
push ecx
mov dword [esp], 0x40800000
mov esi, dword [ecx]
push 0
push eax
mov eax, dword [0x101223c8]
mov edx, eax
shr edx, 8
movzx eax, al
movzx edx, dl
push edx
push eax
lea eax, [ebp - 0x10]
push eax
lea eax, [ebp - 0x1c]
push eax
mov eax, dword [esi + 0x14]
call eax
push dword [ebp - 0x40]
mov ecx, dword [0x10142624]
call dword [0x10142718]
mov esi, eax
test esi, esi
je 0x100c4778
mov ecx, dword [0x101425f4]
mov edx, dword [ebp - 0xc0]
mov ecx, dword [ecx + 0x10]
mov dword [esi + 0xc8], ecx
test edx, edx
js 0x100c4778
mov ecx, dword [0x101425d0]
push edx
mov eax, dword [ecx]
mov eax, dword [eax + 4]
call eax
mov edx, eax
test edx, edx
je 0x100c4713
movss xmm0, dword [ebp - 0xe4]
mov eax, dword [ebp - 0xc0]
mov dword [esi + 0x30], 0
mov dword [esi + 0x150], eax
mov dword [esi + 0x154], 0xffffffff
movss dword [esi + 0x158], xmm0
mov dword [esi + 0xf8], 0
mov dword [esi + 0xf4], 0
mov ecx, dword [0x101425d0]
push edx
mov eax, dword [ecx]
mov eax, dword [eax + 0x20]
call eax
movss xmm1, dword [ebp - 0xe8]
movss xmm2, dword [ebp - 0xec]
movaps xmm0, xmm1
mov dword [esi + 0x15c], eax
mov eax, dword [0x101425f4]
movss xmm4, dword [ebp - 0x108]
movss xmm3, dword [ebp - 0xfc]
movss xmm5, dword [ebp - 0x10c]
mulss xmm0, dword [eax + 0x10]
movss dword [esi + 0xc4], xmm0
movaps xmm0, xmm2
mov eax, dword [0x101425f4]
addss xmm0, dword [eax + 0x10]
mov eax, dword [ebp - 0x110]
mov dword [esi + 0x34], 0
movss dword [esi + 0xf0], xmm1
movss xmm1, dword [ebp - 0xf8]
movss dword [esi + 0xc8], xmm0
movss xmm0, dword [ebp - 0xf0]
movss dword [esi + 0xcc], xmm0
movss xmm0, dword [ebp - 0xf4]
movss dword [esi + 0xd0], xmm0
movss xmm0, dword [ebp - 0x64]
movss dword [esi + 0xd4], xmm0
movss xmm0, dword [ebp - 0x60]
movss dword [esi + 0xd8], xmm0
movss xmm0, dword [ebp - 0x5c]
movss dword [esi + 0xdc], xmm2
movss xmm2, dword [ebp - 0x104]
movss dword [esi + 0x3c], xmm1
movss dword [esi + 0x48], xmm2
subss xmm2, xmm1
movss dword [esi + 0x40], xmm3
movaps xmm1, xmm4
movss dword [esi + 0xec], xmm0
subss xmm1, xmm3
movss xmm0, dword [ebp - 0x100]
movaps xmm3, xmm5
movss dword [esi + 0x44], xmm0
subss xmm3, xmm0
movss dword [esi + 0x4c], xmm4
movss dword [esi + 0x50], xmm5
movss dword [esi + 0xb4], xmm2
movss dword [esi + 0xb8], xmm1
movss dword [esi + 0xbc], xmm3
cmp eax, 0xffffffff
jne 0x100c470d
movss xmm0, dword [esi + 0xd8]
comiss xmm0, dword [0x10108a78]
mulss xmm1, xmm1
mulss xmm2, xmm2
mulss xmm3, xmm3
addss xmm1, xmm2
addss xmm1, xmm3
movaps xmm0, xmm1
jb 0x100c46f0
call fcn.100194b0
mulss xmm0, dword [0x10108a4c]
addss xmm0, dword [0x10108af8]
cvttss2si eax, xmm0
jmp 0x100c470d
call fcn.100194b0
cvtss2sd xmm0, xmm0
mulsd xmm0, qword [ebp - 0x138]
addsd xmm0, qword [ebp - 0x140]
cvttsd2si eax, xmm0
mov dword [esi + 0xfc], eax
movd xmm0, dword [ebp - 0x114]
cvtdq2ps xmm0, xmm0
push esi
movss dword [esi + 0xf8], xmm0
movss xmm0, dword [ebp - 0x118]
movss dword [esi + 0xf4], xmm0
movss xmm0, dword [ebp - 0x11c]
movss dword [esi + 0xe0], xmm0
movss xmm0, dword [ebp - 0x120]
movss dword [esi + 0xe4], xmm0
movss xmm0, dword [ebp - 0x124]
movss dword [esi + 0xe8], xmm0
mov ecx, dword [0x10142624]
mov eax, dword [ecx]
mov eax, dword [eax + 0x10]
call eax
mov byte [edi + 0x1c], 1
movss xmm2, dword [ebp - 0xc4]
mov esi, dword [ebp - 0xb8]
mov ecx, dword [ebp - 0xb4]
test ebx, ebx
jne 0x100c40e0
mov ecx, dword [ebp - 4]
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.100c6a45
mov esp, ebp
pop ebp
ret