Function at 0x100d10b0
Capabilities:
Encode data using xor

Disassembly:
push ebx
mov ebx, esp
sub esp, 8
and esp, 0xfffffff8
add esp, 4
push ebp
mov ebp, dword [ebx + 4]
mov dword [esp + 4], ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x10146b5e
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
push ebx
sub esp, 0x58
push esi
push edi
mov edi, dword [0x101e671c]
mov dword [ebp - 0x20], 1
test edi, edi
je 0x100d1574
mov eax, dword [0x101e6718]
test eax, eax
jne 0x100d112b
mov edx, 0xe80c2f78
mov ecx, 0x101708c5
call fcn.100074c0
mov edx, 0xc10bf213
mov ecx, 0x10170861
mov esi, eax
call fcn.100074c0
push esi
push eax
call fcn.100fc040
mov dword [0x101e6718], eax
cmp dword [eax + edi], 0
jle 0x100d1574
cmp dword [0x101ede68], 0
je 0x100d1574
mov eax, dword fs:[0x2c]
mov ecx, dword [0x101e66ac]
mov ecx, dword [eax + ecx*4]
mov eax, dword [0x101ede78]
mov dword [ebp - 0x1c], ecx
cmp eax, dword [ecx + 4]
jg 0x100d1589
mov eax, dword [0x101ede70]
lea ecx, [edi + 0x3288]
mov esi, dword [ebx + 8]
push esi
mov dword [eax + edi], esi
call fcn.1000ce90
mov ecx, dword [0x101e6c80]
test ecx, ecx
jne 0x100d1224
movaps xmm0, xmmword [0x1017fad0]
xor eax, eax
movaps xmm2, xmmword [0x1017fe80]
movups xmmword [ebp - 0x58], xmm0
mov dword [ebp - 0x38], 0xf4ebf4eb
movaps xmm0, xmmword [0x10180180]
movups xmmword [ebp - 0x48], xmm0
mov dword [ebp - 0x34], 0x97f4e7ec
mov dword [ebp - 0x30], 0xe0e4f4e0
mov byte [ebp - 0x2c], 0xd4
movups xmm0, xmmword [ebp + eax - 0x58]
movaps xmm1, xmm2
xorps xmm1, xmm0
movups xmmword [ebp + eax - 0x58], xmm1
add eax, 0x10
cmp eax, 0x20
jb 0x100d11c2
cmp eax, 0x2d
jae 0x100d11eb
nop
xor byte [ebp + eax - 0x58], 0xd4
inc eax
cmp eax, 0x2d
jb 0x100d11e0
mov dword [ebp - 0x2b], 0xb1bdb8b7
xor eax, eax
mov dword [ebp - 0x27], 0xb0faa0ba
mov word [ebp - 0x23], 0xb8b8
mov byte [ebp - 0x21], 0xd4
xor byte [ebp + eax - 0x2b], 0xd4
inc eax
cmp eax, 0xb
jb 0x100d1205
lea edx, [ebp - 0x58]
lea ecx, [ebp - 0x2b]
call fcn.100c52b0
mov ecx, dword [eax + 2]
mov dword [0x101e6c80], ecx
mov eax, dword [esi + 0x40]
and eax, 0x7fffffff
mov dword [ecx], eax
mov ecx, edi
mov eax, dword [0x101e66e8]
mov dword [0x101e6c84], edi
movss xmm0, dword [eax + 0x10]
movss dword [0x101e6d4c], xmm0
movd xmm0, dword [eax + 4]
cvtdq2ps xmm0, xmm0
movss dword [0x101e6d50], xmm0
mov eax, dword [eax + 0x1c]
mov dword [0x101e6d54], eax
call fcn.10007620
mov ecx, edi
movq xmm0, qword [eax]
movq qword [0x101e6d58], xmm0
mov eax, dword [eax + 8]
mov dword [0x101e6d60], eax
call fcn.1000aa10
mov eax, dword [eax]
mov dword [ebp - 0x20], eax
mov eax, dword [0x101ede6c]
mov cl, byte [eax + 9]
mov al, byte [eax + 8]
mov byte [ebp - 0x11], al
mov eax, dword [0x101ede84]
mov byte [ebp - 0x12], cl
mov ecx, dword [0x101ede8c]
test eax, eax
je 0x100d12b8
cmp byte [eax + 0x48], 0
jne 0x100d12b8
mov eax, dword [0x101ede88]
inc eax
mov edx, eax
mov dword [ebp - 0x18], eax
jmp 0x100d12bf
mov eax, ecx
mov dword [ebp - 0x18], ecx
mov edx, ecx
mov esi, dword [0x101e66e8]
movd xmm0, eax
mov eax, esi
cvtdq2ps xmm0, xmm0
movss xmm1, dword [esi + 0x20]
mov esi, dword [0x101ede6c]
mulss xmm0, xmm1
movss dword [eax + 0x10], xmm0
xorps xmm0, xmm0
mov al, byte [esi + 0xa]
test al, al
jne 0x100d12ef
movaps xmm0, xmm1
mov eax, dword [0x101e66e8]
mov esi, dword [ebx + 8]
cmove edx, dword [ebp - 0x18]
movss dword [eax + 0x14], xmm0
cmp byte [esi + 0x48], 0
jne 0x100d1309
lea ecx, [edx + 1]
mov dword [eax + 0x1c], ecx
sub esp, 8
mov eax, dword [0x101ede6c]
mov dword [0x101ede88], ecx
mov dword [0x101ede84], esi
mov word [eax + 8], 1
mov edx, dword [edi + 0x3334]
or edx, dword [esi + 0x30]
mov dword [esi + 0x30], edx
mov eax, dword [edi + 0x3330]
not eax
and edx, eax
lea eax, [edi + 0x31e8]
mov dword [esi + 0x30], edx
mov ecx, dword [eax]
mov dword [eax], edx
xor ecx, edx
mov dword [edi + 0x31dc], eax
mov eax, ecx
and eax, edx
not edx
and edx, ecx
mov dword [edi + 0x31e0], eax
mov ecx, dword [0x101e66e8]
mov dword [edi + 0x31e4], edx
mov edx, dword [0x101ede6c]
movss xmm0, dword [ecx + 0x14]
mov ecx, edx
cvtps2pd xmm0, xmm0
mov eax, dword [edx]
mov eax, dword [eax + 0x48]
movsd qword [esp], xmm0
push edi
call eax
mov ecx, dword [0x101ede6c]
mov eax, dword [ecx]
mov edx, dword [eax + 0x34]
lea eax, [esi + 0xc]
push eax
call edx
mov ecx, dword [ebp - 0x1c]
mov eax, dword [0x101ede60]
cmp eax, dword [ecx + 4]
jg 0x100d15f2
mov eax, dword [0x101ede74]
mov ecx, edi
push 0
call eax
test al, al
je 0x100d13c8
mov eax, dword [edi]
mov ecx, edi
mov eax, dword [eax + 0x4f8]
call eax
mov ecx, dword [0x101ede7c]
test ecx, ecx
jne 0x100d1404
mov edx, 0xe80c2f78
mov ecx, 0x1017111d
call fcn.100074c0
mov edx, 0xc10bf213
mov ecx, 0x10170851
mov esi, eax
call fcn.100074c0
push esi
push eax
call fcn.100fc040
mov esi, dword [ebx + 8]
mov ecx, eax
mov dword [0x101ede7c], ecx
mov edx, dword [ecx + edi]
test edx, edx
jle 0x100d1449
mov eax, dword [0x101ede84]
test eax, eax
je 0x100d1422
cmp byte [eax + 0x48], 0
jne 0x100d1422
mov eax, dword [0x101ede88]
inc eax
jmp 0x100d1427
mov eax, dword [0x101ede8c]
mov dword [0x101ede88], eax
mov dword [0x101ede84], esi
cmp edx, eax
jg 0x100d1449
mov dword [ecx + edi], 0xffffffff
mov ecx, edi
mov eax, dword [edi]
mov eax, dword [eax + 0x22c]
call eax
mov ecx, dword [0x101ede68]
push edi
mov eax, dword [ecx]
call dword [eax + 4]
mov ecx, dword [0x101ede6c]
push 0x101e6c88
push dword [0x101ede68]
mov eax, dword [ecx]
push esi
push edi
mov eax, dword [eax + 0x50]
call eax
mov ecx, dword [0x101ede64]
push 0x101e6c88
push edi
mov eax, dword [ecx]
call dword [eax + 4]
mov ecx, dword [0x101ede6c]
push 0x101e6c88
push esi
push edi
mov eax, dword [ecx]
mov eax, dword [eax + 0x54]
call eax
mov ecx, dword [0x101ede68]
mov eax, dword [ecx]
call dword [eax + 0x10]
mov eax, dword [edi]
mov ecx, edi
mov eax, dword [eax + 0x4fc]
call eax
mov ecx, edi
call fcn.1000aa10
mov ecx, dword [ebp - 0x20]
mov dword [eax], ecx
mov eax, dword [0x101e66e8]
mov ecx, dword [0x101e6c84]
movss xmm0, dword [eax + 0x10]
movss dword [0x101e6d64], xmm0
movd xmm0, dword [eax + 4]
cvtdq2ps xmm0, xmm0
movss dword [0x101e6d68], xmm0
mov eax, dword [eax + 0x1c]
mov dword [0x101e6d6c], eax
call fcn.10007620
mov cl, byte [ebp - 0x11]
mov esi, dword [0x101e6780]
movq xmm0, qword [eax]
movq qword [0x101e6d70], xmm0
mov eax, dword [eax + 8]
mov dword [0x101e6d78], eax
mov eax, dword [0x101ede6c]
mov byte [eax + 8], cl
mov cl, byte [ebp - 0x12]
mov byte [eax + 9], cl
test esi, esi
je 0x100d1555
mov eax, dword [esi]
mov ecx, esi
mov eax, dword [eax + 0x790]
call eax
mov eax, dword [esi]
mov ecx, esi
mov eax, dword [eax + 0x78c]
mov dword [ebp - 0x20], eax
call dword [ebp - 0x20]
fstp dword [0x101e6d44]
mov eax, dword [esi]
mov ecx, esi
mov eax, dword [eax + 0x714]
mov dword [ebp - 0x20], eax
call dword [ebp - 0x20]
fstp dword [0x101e6d40]
jmp 0x100d1569
mov dword [0x101e6d40], 0
mov dword [0x101e6d44], 0
mov ecx, dword [0x101ee7f0]
call fcn.100c9580
mov ecx, dword [ebp - 0xc]
pop edi
mov dword fs:[0], ecx
pop esi
mov esp, ebp
pop ebp
mov esp, ebx
pop ebx
ret 8
push 0x101ede78
call fcn.1006d20f
add esp, 4
cmp dword [0x101ede78], 0xffffffff
jne 0x100d1165
mov edx, 0xe80c2f78
mov dword [ebp - 4], 0
mov ecx, 0x10171131
call fcn.100074c0
mov edx, 0xc10bf213
mov ecx, 0x10170851
mov esi, eax
call fcn.100074c0
push esi
push eax
call fcn.100fc040
sub eax, 0xc
mov dword [ebp - 4], 0xffffffff
push 0x101ede78
mov dword [0x101ede70], eax
call fcn.1006d1be
add esp, 4
jmp 0x100d1165
push 0x101ede60
call fcn.1006d20f
add esp, 4
cmp dword [0x101ede60], 0xffffffff
jne 0x100d13ad
movaps xmm0, xmmword [0x1017ff90]
xor eax, eax
movaps xmm2, xmmword [0x1017fe80]
movups xmmword [ebp - 0x63], xmm0
mov dword [ebp - 0x33], 0xec91f4e5
movaps xmm0, xmmword [0x101800c0]
movups xmmword [ebp - 0x53], xmm0
mov dword [ebp - 0x2f], 0xd4e2e5f4
movaps xmm0, xmmword [0x1017fb40]
movups xmmword [ebp - 0x43], xmm0
jmp 0x100d1650
movups xmm0, xmmword [ebp + eax - 0x63]
movaps xmm1, xmm2
xorps xmm1, xmm0
movups xmmword [ebp + eax - 0x63], xmm1
add eax, 0x10
cmp eax, 0x30
jb 0x100d1650
cmp eax, 0x38
jae 0x100d167d
jmp 0x100d1670
xor byte [ebp + eax - 0x63], 0xd4
inc eax
cmp eax, 0x38
jb 0x100d1670
jmp 0x100d167d
mov dword [ebp - 0x2b], 0xb1bdb8b7
xor eax, eax
mov dword [ebp - 0x27], 0xb0faa0ba
mov word [ebp - 0x23], 0xb8b8
mov byte [ebp - 0x21], 0xd4
jmp 0x100d16a0
xor byte [ebp + eax - 0x2b], 0xd4
inc eax
cmp eax, 0xb
jb 0x100d16a0
lea edx, [ebp - 0x63]
lea ecx, [ebp - 0x2b]
call fcn.100c52b0
push 0x101ede60
mov dword [0x101ede74], eax
call fcn.1006d1be
add esp, 4
jmp 0x100d13ad