Function at 0x100d5910
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 0x10146dfc
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 0x100d5cf3
mov eax, dword [0x101e671c]
mov dword [ebp - 0x1c], eax
test eax, eax
je 0x100d5cf0
mov eax, dword [0x101e6718]
test eax, eax
jne 0x100d5996
mov edx, 0xe80c2f78
mov ecx, 0x10170905
call fcn.100074c0
mov edx, 0xc10bf213
mov ecx, 0x101708a1
mov esi, eax
call fcn.100074c0
push esi
push eax
call fcn.100fc160
mov dword [0x101e6718], eax
mov ecx, dword [ebp - 0x1c]
cmp dword [eax + ecx], 0
jle 0x100d5cf0
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 0x100d59c9
test dl, dl
je 0x100d59c9
mov al, 1
jmp 0x100d59cb
xor al, al
mov cl, byte [0x101eded4]
cmp cl, al
je 0x100d59e5
test dl, dl
je 0x100d59dc
mov byte [edi], 1
test cl, cl
sete byte [0x101eded4]
cmp byte [edi], 0
je 0x100d5cf3
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 0x100d5d06
mov esi, dword [0x101e6780]
test esi, esi
je 0x100d5cf3
mov ecx, dword [0x101eef94]
mov eax, dword [ecx]
mov eax, dword [eax + 0x34]
call eax
test eax, eax
jne 0x100d5cf3
mov ecx, dword [0x101e671c]
call fcn.100075e0
test byte [eax], 1
je 0x100d5cf3
mov ecx, esi
call fcn.1000ad00
cmp word [eax], 0x1f
je 0x100d5cf3
mov eax, dword [0x101ede38]
mov dword [ebp - 0x1c], eax
test eax, eax
je 0x100d5cf3
mov eax, dword [0x101e66ac]
mov ecx, dword [edi + eax*4]
mov eax, dword [0x101eef9c]
cmp eax, dword [ecx + 4]
jg 0x100d5d8f
mov ecx, dword [0x101e671c]
call fcn.1000b0a0
cmp byte [eax], 0
je 0x100d5abe
mov ecx, esi
call fcn.1000ad00
cmp word [eax], 0x26
je 0x100d5abe
mov ecx, esi
call fcn.1000ad00
cmp word [eax], 0xb
je 0x100d5abe
mov ecx, esi
call fcn.1000ad00
cmp word [eax], 0x28
je 0x100d5abe
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 [0x1017f110]
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 0x100d5be7
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 [0x1017f128]
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 0x100d5bac
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.100f9f20
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 [0x1017f028]
call fcn.1000af40
movss dword [ebp - 0x18], xmm0
movss xmm0, dword [ebp - 0x44]
xorps xmm0, xmmword [0x1017f9a0]
movss dword [ebp - 0x1c], xmm0
movss xmm0, dword [ebp - 0x14]
mulss xmm0, dword [0x1017f028]
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 [0x1017f028]
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.1006d07f
add esp, 4
cmp dword [0x101eef88], 0xffffffff
jne 0x100d5a0f
mov dword [ebp - 4], 0
mov ecx, dword [0x101e674c]
movaps xmm0, xmmword [0x1017f9b0]
xorps xmm0, xmmword [0x1017fe60]
mov dword [ebp - 0x3c], 0xf4f7ebea
mov eax, dword [ecx]
mov dword [ebp - 0x38], 0xe0e5e1f6
mov byte [ebp - 0x34], 0x84
movups xmmword [ebp - 0x4c], xmm0
mov edx, dword [eax + 0x44]
mov eax, 0x10
jmp 0x100d5d60
xor byte [ebp + eax - 0x4c], 0x84
inc eax
cmp eax, 0x19
jb 0x100d5d60
lea eax, [ebp - 0x4c]
push eax
call edx
push 0x101eef88
mov dword [0x101eef94], eax
mov dword [ebp - 4], 0xffffffff
call fcn.1006d02e
add esp, 4
jmp 0x100d5a0f
push 0x101eef9c
call fcn.1006d07f
add esp, 4
cmp dword [0x101eef9c], 0xffffffff
jne 0x100d5a80
mov dword [ebp - 4], 1
mov ecx, dword [0x101e674c]
mov dword [ebp - 0x30], 0xe5dbf2f7
mov dword [ebp - 0x2c], 0xe8e1e7e7
mov dword [ebp - 0x28], 0xf0e5f6e1
mov eax, dword [ecx]
mov word [ebp - 0x24], 0x84e1
mov edx, dword [eax + 0x44]
xor eax, eax
jmp 0x100d5de0
xor byte [ebp + eax - 0x30], 0x84
inc eax
cmp eax, 0xe
jb 0x100d5de0
lea eax, [ebp - 0x30]
push eax
call edx
push 0x101eef9c
mov dword [ebp - 4], 0xffffffff
call fcn.1006d02e
add esp, 4
jmp 0x100d5a80