Function at 0x100802d0
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff0
sub esp, 0x98
mov eax, dword [0x101075c0]
movaps xmm0, xmmword [0x100ffea0]
push esi
push edi
or dword [eax + 0x1a88], 2
xor ecx, ecx
mov dword [eax + 0x1aa8], 0x44228000
mov dword [eax + 0x1aac], 0x44228000
mov dword [eax + 0x1a90], 2
movups xmmword [esp + 0x40], xmm0
mov dword [esp + 0x50], 0x3a263b36
mov dword [esp + 0x54], 0x35381674
mov dword [esp + 0x58], 0x3d383f37
mov dword [esp + 0x5c], 0x2027
mov al, byte [esp + 0x40]
xor byte [esp + ecx + 0x41], al
inc ecx
cmp ecx, 0x1d
jb 0x10080336
push 0xb
xor edx, edx
mov word [esp + 0x62], 0x100
lea ecx, [esp + 0x45]
call fcn.10052430
mov esi, dword [0x101075c0]
mov cl, 0x5c
movss xmm1, dword [0x100ff400]
mov ch, 0x54
mov byte [esp + 0x18], 0x1d
mov dl, 0x4f
xor cl, byte [esp + 0x18]
add esp, 4
mov eax, dword [esi + 0x1a08]
mov byte [esp + 0x16], cl
mov cl, byte [esp + 0x14]
mov byte [esp + 0x22], 0x5a
xor ch, cl
movss xmm7, dword [eax + 0xc]
xor dl, cl
movss xmm6, dword [eax + 0x10]
movaps xmm0, xmm7
mov byte [eax + 0x7c], 1
addss xmm0, xmm1
mov eax, dword [esi + 0x1a08]
mov byte [esp + 0x23], 0x3c
mov byte [esp + 0x19], ch
mov byte [esp + 0x1d], 0
mov edi, dword [eax + 0x278]
mov al, 0x4a
xor al, byte [esp + 0x14]
mov ah, 0x53
movss dword [esp + 0xc], xmm0
mov dh, ah
mov byte [esp + 0x15], al
movaps xmm0, xmm6
addss xmm0, dword [0x100ff2d0]
mov al, byte [esp + 0x22]
xor ah, cl
xor al, cl
movss dword [esp + 0x2c], xmm7
mov byte [esp + 0x1b], al
xor dh, cl
mov al, byte [esp + 0x23]
movss dword [esp + 0x10], xmm0
xor al, cl
movaps xmm0, xmmword [0x10100130]
lea ecx, [esp + 0x30]
movss dword [esp + 0x24], xmm6
mov byte [esp + 0x17], dl
mov byte [esp + 0x18], ah
mov byte [esp + 0x1a], dh
mov byte [esp + 0x1c], al
mov word [esp + 0x1d], 0x100
movups xmmword [esp + 0x30], xmm0
call fcn.1004bc60
mov edx, dword [esi + 0x18d0]
mov dword [esp + 0x28], eax
test eax, 0xff000000
je 0x100804aa
lea ecx, [esp + 0x15]
lea esi, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x10080447
sub ecx, esi
lea eax, [esp + 0x15]
add ecx, eax
cmp eax, ecx
je 0x100804aa
test edx, edx
jne 0x10080464
mov eax, dword [edi + 0x28]
mov edx, dword [eax + 8]
push dword [esp + 0x10]
movups xmm0, xmmword [edi + 0x60]
lea eax, [esp + 0x19]
push dword [esp + 0x10]
movss xmm2, dword [0x100ff3c0]
push 0
push ecx
mov dword [esp], 0
push ecx
push eax
lea eax, [esp + 0x48]
mov ecx, edx
push eax
push dword [esp + 0x44]
movups xmmword [esp + 0x50], xmm0
push edi
call fcn.10068500
movss xmm6, dword [esp + 0x24]
movss xmm7, dword [esp + 0x2c]
movss xmm1, dword [0x100ff3e8]
lea ecx, [esp + 0x40]
movaps xmm0, xmm7
addss xmm0, xmm1
movss xmm1, dword [0x100ff4c4]
movss dword [esp + 0xc], xmm0
movaps xmm0, xmm6
addss xmm0, dword [0x100ff3bc]
movss dword [esp + 0x10], xmm0
movaps xmm0, xmm7
addss xmm0, xmm1
movss xmm1, dword [0x100ff478]
movss dword [esp + 0x30], xmm0
movaps xmm0, xmm6
addss xmm0, dword [0x100ff3bc]
movss dword [esp + 0x34], xmm0
movaps xmm0, xmm7
addss xmm0, xmm1
movss dword [esp + 0x28], xmm0
movss dword [esp + 0x14], xmm0
movaps xmm0, xmm6
addss xmm0, dword [0x100ff4c8]
movss dword [esp + 0x18], xmm0
movaps xmm0, xmmword [0x101000d0]
movups xmmword [esp + 0x40], xmm0
call fcn.1004bc60
push eax
lea eax, [esp + 0x18]
mov ecx, edi
push eax
lea eax, [esp + 0x38]
push eax
lea eax, [esp + 0x18]
push eax
call fcn.10064f10
movss xmm1, dword [0x100ff480]
lea ecx, [esp + 0x40]
movss xmm0, dword [esp + 0x2c]
movss xmm3, dword [esp + 0x24]
addss xmm0, xmm1
movss xmm1, dword [0x100ff46c]
movss dword [esp + 0xc], xmm0
movaps xmm0, xmm3
addss xmm0, dword [0x100ff498]
movss dword [esp + 0x10], xmm0
movss xmm0, dword [esp + 0x2c]
addss xmm0, xmm1
movss dword [esp + 0x30], xmm0
movaps xmm0, xmm3
addss xmm0, dword [0x100ff498]
movss dword [esp + 0x34], xmm0
movss xmm0, dword [esp + 0x28]
movss dword [esp + 0x14], xmm0
movaps xmm0, xmm3
addss xmm0, dword [0x100ff3e0]
movss dword [esp + 0x18], xmm0
movaps xmm0, xmmword [0x10100320]
movups xmmword [esp + 0x40], xmm0
call fcn.1004bc60
push eax
lea eax, [esp + 0x18]
mov ecx, edi
push eax
lea eax, [esp + 0x38]
push eax
lea eax, [esp + 0x18]
push eax
call fcn.10064f10
movss xmm1, dword [0x100ff47c]
movss xmm0, dword [esp + 0x2c]
addss xmm0, xmm1
movss xmm1, dword [0x100ff470]
movss dword [esp + 0xc], xmm0
movss xmm0, dword [esp + 0x24]
addss xmm0, dword [0x100ff3dc]
movss dword [esp + 0x10], xmm0
movss xmm0, dword [esp + 0x2c]
addss xmm0, xmm1
movss dword [esp + 0x30], xmm0
movss xmm0, dword [esp + 0x24]
addss xmm0, dword [0x100ff498]
movss dword [esp + 0x34], xmm0
movaps xmm0, xmmword [0x10100320]
push 0xf
push ecx
lea ecx, [esp + 0x48]
mov dword [esp], 0
movups xmmword [esp + 0x48], xmm0
call fcn.1004bc60
push eax
lea eax, [esp + 0x3c]
mov ecx, edi
push eax
lea eax, [esp + 0x1c]
push eax
call fcn.10064c30
movss xmm0, dword [esp + 0x28]
lea ecx, [esp + 0x40]
movss dword [esp + 0xc], xmm0
movss xmm0, dword [esp + 0x24]
addss xmm0, dword [0x100ff4b4]
movss dword [esp + 0x10], xmm0
movaps xmm0, xmmword [0x10100320]
movups xmmword [esp + 0x40], xmm0
call fcn.1004bc60
mov esi, eax
test esi, 0xff000000
je 0x100806ed
movss xmm2, dword [0x100ff338]
lea eax, [esp + 0xc]
push 0x17
push ecx
mov dword [esp], 0x40c0af31
xorps xmm3, xmm3
push eax
mov ecx, edi
call fcn.10064570
push esi
push dword [edi + 0x54]
mov ecx, edi
push dword [edi + 0x5c]
call fcn.10064070
mov dword [edi + 0x54], 0
movss xmm0, dword [esp + 0x24]
xor ecx, ecx
addss xmm0, dword [0x100ff4cc]
movss xmm1, dword [0x100ff3e4]
movss xmm4, dword [esp + 0x2c]
addss xmm4, xmm1
mov dword [esp + 0x88], 0xe4d0101
mov dword [esp + 0x8c], 0x190c0805
movss dword [esp + 0x10], xmm0
movaps xmm0, xmmword [0x101004a0]
movups xmmword [esp + 0x68], xmm0
mov dword [esp + 0x90], 0x431e
movaps xmm0, xmmword [0x100ffaf0]
movss dword [esp + 0xc], xmm4
movups xmmword [esp + 0x78], xmm0
mov al, byte [esp + 0x68]
xor byte [esp + ecx + 0x69], al
inc ecx
cmp ecx, 0x29
jb 0x10080754
movaps xmm0, xmmword [0x10100130]
lea ecx, [esp + 0x40]
mov word [esp + 0x92], 0x100
movups xmmword [esp + 0x40], xmm0
call fcn.1004bc60
mov esi, dword [0x101075c0]
mov dword [esp + 0x30], eax
mov edx, dword [esi + 0x18d0]
test eax, 0xff000000
je 0x10080802
lea ecx, [esp + 0x69]
lea eax, [ecx + 1]
mov dword [esp + 0x28], eax
mov al, byte [ecx]
inc ecx
test al, al
jne 0x100807a3
sub ecx, dword [esp + 0x28]
lea eax, [esp + 0x69]
add ecx, eax
cmp eax, ecx
je 0x10080802
test edx, edx
jne 0x100807c2
mov eax, dword [edi + 0x28]
mov edx, dword [eax + 8]
push dword [esp + 0x10]
movups xmm0, xmmword [edi + 0x60]
lea eax, [esp + 0x6d]
push dword [esp + 0x10]
movss xmm2, dword [0x100ff340]
push 0
push ecx
mov dword [esp], 0
push ecx
push eax
lea eax, [esp + 0x58]
mov ecx, edx
push eax
push dword [esp + 0x4c]
movups xmmword [esp + 0x60], xmm0
push edi
call fcn.10068500
mov esi, dword [0x101075c0]
movss xmm0, dword [0x100ff310]
xor ecx, ecx
movss xmm1, dword [esp + 0x2c]
addss xmm1, xmm0
mov dword [esp + 0x98], 0x1e494a
movss xmm0, dword [esp + 0x24]
addss xmm0, dword [0x100ff4d4]
mov byte [esp + 0x9c], 0
movss dword [esp + 0xc], xmm1
movss dword [esp + 0x10], xmm0
movaps xmm0, xmmword [0x101004e0]
movups xmmword [esp + 0x68], xmm0
movaps xmm0, xmmword [0x100ffbb0]
movups xmmword [esp + 0x78], xmm0
movaps xmm0, xmmword [0x101004f0]
movups xmmword [esp + 0x88], xmm0
nop word [eax + eax]
mov al, byte [esp + 0x68]
xor byte [esp + ecx + 0x69], al
inc ecx
cmp ecx, 0x32
jb 0x10080870
movaps xmm0, xmmword [0x10100130]
lea ecx, [esp + 0x40]
mov word [esp + 0x9b], 0x100
movups xmmword [esp + 0x40], xmm0
call fcn.1004bc60
mov edx, dword [esi + 0x18d0]
mov dword [esp + 0x30], eax
test eax, 0xff000000
je 0x1008090c
lea ecx, [esp + 0x69]
lea esi, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x100808b5
sub ecx, esi
lea eax, [esp + 0x69]
add ecx, eax
cmp eax, ecx
je 0x1008090c
test edx, edx
jne 0x100808d2
mov eax, dword [edi + 0x28]
mov edx, dword [eax + 8]
push dword [esp + 0x10]
movups xmm0, xmmword [edi + 0x60]
lea eax, [esp + 0x6d]
push dword [esp + 0x10]
movss xmm2, dword [0x100ff34c]
push 0
push ecx
mov dword [esp], 0
push ecx
push eax
lea eax, [esp + 0x58]
mov ecx, edx
push eax
push dword [esp + 0x4c]
movups xmmword [esp + 0x60], xmm0
push edi
call fcn.10068500
call fcn.10054790
pop edi
pop esi
mov esp, ebp
pop ebp
ret