Function at 0x100d57c0
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
mov eax, dword fs:[0]
push 0xffffffffffffffff
push 0x10146c2c
push eax
mov dword fs:[0], esp
push ebx
sub esp, 0x40
push esi
push edi
mov edi, dword [0x101ee80c]
cmp byte [edi + 0xe], 0
je 0x100d5ba3
mov eax, dword [0x101e671c]
mov dword [ebp - 0x1c], eax
test eax, eax
je 0x100d5ba0
mov eax, dword [0x101e6718]
test eax, eax
jne 0x100d5846
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
mov ecx, dword [ebp - 0x1c]
cmp dword [eax + ecx], 0
jle 0x100d5ba0
lea eax, [ebp - 0x1c]
mov dword [ebp - 0x1c], 0
lea ecx, [edi + 0x18]
push eax
call fcn.1000b6f0
mov dl, byte [0x101eef80]
cmp byte [eax], 0
je 0x100d5879
test dl, dl
je 0x100d5879
mov al, 1
jmp 0x100d587b
xor al, al
mov cl, byte [0x101eded4]
cmp cl, al
je 0x100d5895
test dl, dl
je 0x100d588c
mov byte [edi], 1
test cl, cl
sete byte [0x101eded4]
cmp byte [edi], 0
je 0x100d5ba3
mov edi, dword fs:[0x2c]
mov ecx, dword [0x101e66ac]
mov eax, dword [0x101eef88]
mov ecx, dword [edi + ecx*4]
cmp eax, dword [ecx + 4]
jg 0x100d5bb6
mov esi, dword [0x101e6780]
test esi, esi
je 0x100d5ba3
mov ecx, dword [0x101eef94]
mov eax, dword [ecx]
mov eax, dword [eax + 0x34]
call eax
test eax, eax
jne 0x100d5ba3
mov ecx, dword [0x101e671c]
call fcn.100075e0
test byte [eax], 1
je 0x100d5ba3
mov ecx, esi
call fcn.1000ad00
cmp word [eax], 0x1f
je 0x100d5ba3
mov eax, dword [0x101ede38]
mov dword [ebp - 0x1c], eax
test eax, eax
je 0x100d5ba3
mov eax, dword [0x101e66ac]
mov ecx, dword [edi + eax*4]
mov eax, dword [0x101eef9c]
cmp eax, dword [ecx + 4]
jg 0x100d5c3f
mov ecx, dword [0x101e671c]
call fcn.1000b0a0
cmp byte [eax], 0
je 0x100d596e
mov ecx, esi
call fcn.1000ad00
cmp word [eax], 0x26
je 0x100d596e
mov ecx, esi
call fcn.1000ad00
cmp word [eax], 0xb
je 0x100d596e
mov ecx, esi
call fcn.1000ad00
cmp word [eax], 0x28
je 0x100d596e
mov ecx, esi
call fcn.1000ad00
mov eax, dword [ebp - 0x1c]
movss xmm1, dword [0x101e6d74]
mulss xmm1, xmm1
movss xmm0, dword [eax + 0x138]
cvtps2pd xmm0, xmm0
mulsd xmm0, qword [0x1017f190]
cvtpd2ps xmm0, xmm0
movss dword [ebp - 0x14], xmm0
movss xmm0, dword [0x101e6d70]
mulss xmm0, xmm0
addss xmm0, xmm1
call fcn.10007480
movss xmm1, dword [ebp - 0x14]
comiss xmm1, xmm0
jbe 0x100d5a97
mov eax, dword [0x101e6788]
movss xmm1, dword [eax + 0x24]
movss xmm2, dword [eax + 0x28]
movaps xmm0, xmm1
mulss xmm0, xmm1
movss dword [ebp - 0x1c], xmm1
movaps xmm1, xmm2
mulss xmm1, xmm2
movss dword [ebp - 0x20], xmm2
addss xmm0, xmm1
call fcn.10007480
mov ecx, dword [0x101e671c]
movss dword [ebp - 0x18], xmm0
call fcn.10007620
movss xmm1, dword [ebp - 0x14]
cvtps2pd xmm1, xmm1
movss xmm2, dword [eax + 4]
movss xmm0, dword [eax]
addsd xmm1, qword [0x1017f1a8]
mulss xmm0, xmm0
mulss xmm2, xmm2
movsd qword [ebp - 0x30], xmm1
addss xmm0, xmm2
call fcn.10007480
mov eax, dword [0x101e6788]
cvtss2sd xmm0, xmm0
comisd xmm0, xmmword [ebp - 0x30]
jb 0x100d5a5c
mov dword [eax + 0x24], 0
mov dword [eax + 0x28], 0
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop edi
pop esi
mov esp, ebp
pop ebp
mov esp, ebx
pop ebx
ret
movss xmm0, dword [ebp - 0x1c]
divss xmm0, dword [ebp - 0x18]
mulss xmm0, dword [ebp - 0x14]
movss dword [eax + 0x24], xmm0
movss xmm0, dword [ebp - 0x20]
divss xmm0, dword [ebp - 0x18]
mulss xmm0, dword [ebp - 0x14]
movss dword [eax + 0x28], xmm0
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop edi
pop esi
mov esp, ebp
pop ebp
mov esp, ebx
pop ebx
ret
mov ecx, dword [0x101e671c]
mov dword [ebp - 0x28], 0
mov dword [ebp - 0x2c], 0
mov dword [ebp - 0x30], 0
call fcn.10007620
lea edx, [ebp - 0x30]
mov ecx, eax
call fcn.100f9dc0
mov ecx, dword [0x101e671c]
call fcn.10007620
mov dword [ebp - 0x44], 0
movss xmm1, dword [eax]
movss xmm2, dword [eax + 4]
movss xmm0, dword [eax + 8]
mulss xmm2, xmm2
mulss xmm1, xmm1
mulss xmm0, xmm0
addss xmm2, xmm1
addss xmm2, xmm0
movss dword [ebp - 0x20], xmm2
sqrtss xmm0, dword [ebp - 0x20]
movss dword [ebp - 0x44], xmm0
mov esi, dword [0x101e6788]
movss xmm0, dword [esi + 0x10]
subss xmm0, dword [ebp - 0x2c]
movss dword [ebp - 0x14], xmm0
movss xmm0, dword [ebp - 0x30]
mulss xmm0, dword [0x1017f0a8]
call fcn.1000af40
movss dword [ebp - 0x18], xmm0
movss xmm0, dword [ebp - 0x44]
xorps xmm0, xmmword [0x1017fa30]
movss dword [ebp - 0x1c], xmm0
movss xmm0, dword [ebp - 0x14]
mulss xmm0, dword [0x1017f0a8]
call fcn.1000af40
mulss xmm0, dword [ebp - 0x18]
mulss xmm0, dword [ebp - 0x1c]
movss dword [ebp - 0x20], xmm0
movss xmm0, dword [ebp - 0x14]
mulss xmm0, dword [0x1017f0a8]
call fcn.1000af60
mulss xmm0, dword [ebp - 0x18]
movss xmm1, dword [ebp - 0x20]
movss dword [esi + 0x24], xmm1
mulss xmm0, dword [ebp - 0x1c]
movss dword [esi + 0x28], xmm0
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop edi
pop esi
mov esp, ebp
pop ebp
mov esp, ebx
pop ebx
ret
mov byte [edi], 0
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
push 0x101eef88
call fcn.1006d20f
add esp, 4
cmp dword [0x101eef88], 0xffffffff
jne 0x100d58bf
mov dword [ebp - 4], 0
mov ecx, dword [0x101e674c]
movaps xmm0, xmmword [0x1017fe80]
xorps xmm0, xmmword [0x1017fa50]
mov dword [ebp - 0x3c], 0xa4a7bbba
mov eax, dword [ecx]
mov dword [ebp - 0x38], 0xb0b5b1a6
mov byte [ebp - 0x34], 0xd4
movups xmmword [ebp - 0x4c], xmm0
mov edx, dword [eax + 0x44]
mov eax, 0x10
jmp 0x100d5c10
xor byte [ebp + eax - 0x4c], 0xd4
inc eax
cmp eax, 0x19
jb 0x100d5c10
lea eax, [ebp - 0x4c]
push eax
call edx
push 0x101eef88
mov dword [0x101eef94], eax
mov dword [ebp - 4], 0xffffffff
call fcn.1006d1be
add esp, 4
jmp 0x100d58bf
push 0x101eef9c
call fcn.1006d20f
add esp, 4
cmp dword [0x101eef9c], 0xffffffff
jne 0x100d5930
mov dword [ebp - 4], 1
mov ecx, dword [0x101e674c]
mov dword [ebp - 0x30], 0xb58ba2a7
mov dword [ebp - 0x2c], 0xb8b1b7b7
mov dword [ebp - 0x28], 0xa0b5a6b1
mov eax, dword [ecx]
mov word [ebp - 0x24], 0xd4b1
mov edx, dword [eax + 0x44]
xor eax, eax
jmp 0x100d5c90
xor byte [ebp + eax - 0x30], 0xd4
inc eax
cmp eax, 0xe
jb 0x100d5c90
lea eax, [ebp - 0x30]
push eax
call edx
push 0x101eef9c
mov dword [ebp - 4], 0xffffffff
call fcn.1006d1be
add esp, 4
jmp 0x100d5930