Function at 0x100cab10
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x358
push ebx
mov ebx, ecx
mov dword [ebp - 0x14], edx
mov ecx, dword [0x101e66e8]
push esi
push edi
mov eax, dword [ecx + 4]
movss xmm0, dword [ecx + 0x10]
mov dword [ebp - 0x34], eax
mov eax, dword [0x101e6748]
movss dword [ebp - 0x30], xmm0
test eax, eax
jne 0x100cab72
mov edx, 0xe80c2f78
mov ecx, 0x10170e21
call fcn.100074c0
mov edx, 0xc10bf213
mov ecx, 0x10170861
mov esi, eax
call fcn.100074c0
push esi
push eax
call fcn.100fc040
mov ecx, dword [0x101e66e8]
mov dword [0x101e6748], eax
mov eax, dword [eax + ebx]
inc eax
mov dword [ecx + 4], bind
movd xmm0, eax
cvtdq2ps xmm0, xmm0
mulss xmm0, dword [ecx + 0x20]
movss dword [ecx + 0x10], xmm0
mov ecx, ebx
mov eax, dword [ebx + 0x68]
mov dword [ebp - 0x1c], eax
mov eax, dword [ebx + 0xa68]
mov dword [ebp - 0x24], eax
mov eax, dword [ebx + 0xa28]
mov dword [ebp - 0x2c], eax
mov eax, dword [ebx + 0xa30]
mov dword [ebp - 0x28], eax
mov eax, dword [ebx + 0xf0]
mov dword [ebp - 0x20], eax
mov al, byte [ebx + 0x2930]
mov byte [ebp - 5], al
mov eax, dword [ebx]
mov eax, dword [eax + 0x28]
call eax
mov esi, dword [ebx + 0x2990]
lea edi, [ebp - 0x354]
mov eax, dword fs:[0x2c]
mov ecx, 0xb6
rep movsd dword es:[edi], dword [esi]
mov ecx, dword [0x101e66ac]
mov ecx, dword [eax + ecx*4]
mov eax, dword [0x101e6704]
cmp eax, dword [ecx + 4]
jg 0x100cad36
mov ecx, ebx
call dword [0x101e66cc]
mov eax, dword [0x101ee11c]
mov byte [0x101e6720], 1
mov dword [eax + ebx + 8], 0
mov dword [eax + ebx + 0xc], 0
mov dword [ebx + 0xa30], 0
mov dword [ebx + 0xa28], 0
mov dword [ebx + 0xa68], 0
or dword [ebx + 0xf0], 8
or dword [ebx + 0x68], 2
mov byte [ebx + 0x2930], 0
mov eax, dword [ebx + 0x2990]
mov dword [eax + 0x2c0], 0
mov eax, dword [ebx + 4]
mov eax, dword [eax + 0x34]
mov dword [ebp - 0x18], eax
mov eax, dword [0x101e6748]
test eax, eax
jne 0x100cac9f
mov edx, 0xe80c2f78
mov ecx, 0x10170e21
call fcn.100074c0
mov edx, 0xc10bf213
mov ecx, 0x10170861
mov esi, eax
call fcn.100074c0
push esi
push eax
call fcn.100fc040
mov dword [0x101e6748], eax
mov eax, dword [eax + ebx]
inc eax
push ecx
lea ecx, [ebx + 4]
movd xmm0, eax
mov eax, dword [0x101e66e8]
cvtdq2ps xmm0, xmm0
mulss xmm0, dword [eax + 0x20]
movss dword [esp], xmm0
push 0x7ff00
push 0x100
push dword [ebp - 0x14]
call dword [ebp - 0x18]
mov eax, dword [ebp - 0x1c]
lea esi, [ebp - 0x354]
mov dword [ebx + 0x68], eax
mov ecx, 0xb6
mov al, byte [ebp - 5]
movss xmm0, dword [ebp - 0x30]
mov byte [ebx + 0x2930], al
mov eax, dword [ebp - 0x20]
mov dword [ebx + 0xf0], eax
mov eax, dword [ebp - 0x24]
mov dword [ebx + 0xa68], eax
mov eax, dword [ebp - 0x28]
mov dword [ebx + 0xa30], eax
mov eax, dword [ebp - 0x2c]
mov dword [ebx + 0xa28], eax
mov edi, dword [ebx + 0x2990]
mov eax, dword [0x101e66e8]
rep movsd dword es:[edi], dword [esi]
mov ecx, dword [ebp - 0x34]
pop edi
pop esi
mov byte [0x101e6720], 0
movss dword [eax + 0x10], xmm0
mov dword [eax + 4], ecx
pop ebx
mov esp, ebp
pop ebp
ret
push 0x101e6704
call fcn.1006d20f
add esp, 4
cmp dword [0x101e6704], 0xffffffff
jne 0x100cabfd
movaps xmm1, xmmword [0x1017fe80]
mov eax, 0x40
movaps xmm0, xmm1
mov dword [ebp - 0x3c], 0xebf4ebf4
xorps xmm0, xmmword [0x1017ff50]
movups xmmword [ebp - 0x7c], xmm0
mov dword [ebp - 0x38], 0xd4e797f4
movaps xmm0, xmm1
xorps xmm0, xmmword [0x10180160]
movups xmmword [ebp - 0x6c], xmm0
movaps xmm0, xmm1
xorps xmm1, xmmword [0x10180020]
xorps xmm0, xmmword [0x10180170]
movups xmmword [ebp - 0x5c], xmm0
movups xmmword [ebp - 0x4c], xmm1
jmp 0x100cada1
xor byte [ebp + eax - 0x7c], 0xd4
inc eax
cmp eax, 0x48
jb 0x100cada1
mov dword [ebp - 0x10], 0xb1bdb8b7
xor eax, eax
mov dword [ebp - 0xc], 0xb0faa0ba
mov word [ebp - 8], 0xb8b8
mov byte [ebp - 6], 0xd4
jmp 0x100cadd0
xor byte [ebp + eax - 0x10], 0xd4
inc eax
cmp eax, 0xb
jb 0x100cadd0
lea edx, [ebp - 0x7c]
lea ecx, [ebp - 0x10]
call fcn.100c52b0
push 0x101e6704
mov dword [0x101e66cc], eax
call fcn.1006d1be
add esp, 4
jmp 0x100cabfd