Function at 0x1001e5f0
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x10314079
mov eax, dword fs:[0]
push eax
sub esp, 0xac
mov eax, dword [0x1043900c]
xor eax, ebp
mov dword [ebp - 0x10], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov dword [ebp - 0x90], ecx
mov eax, dword [ebp + 0x14]
mov ecx, dword [0x104c14e0]
mov esi, dword [ebp + 0x10]
mov ebx, dword [ebp + 0x24]
mov edx, dword [ebp + 0x28]
mov dword [ebp - 0xac], eax
mov eax, dword fs:[0x2c]
mov dword [ebp - 0x88], esi
mov dword [ebp - 0x98], ebx
mov dword [ebp - 0x94], edx
mov ecx, dword [eax + ecx*4]
mov eax, dword [0x10611210]
cmp eax, dword [ecx + 4]
jg 0x1001ea74
jmp 0x1001e670
mov edx, dword [ebp - 0x94]
cmp dword [ebx], 0
jle 0x1001ea54
mov eax, dword [ebp + 0xc]
xorps xmm0, xmm0
comiss xmm0, dword [eax + 0x100]
jae 0x1001ea54
movss xmm1, dword [0x1041edc4]
comiss xmm1, dword [edx]
ja 0x1001ea54
lea ecx, [ebp - 0x7c]
call fcn.100150c0
mov ecx, dword [0x1060b2c4]
mov eax, dword [esi + 0x4c]
movsx edx, word [esi + 0x40]
mov dword [ebp - 0xa4], eax
mov eax, dword [ecx]
push edx
mov eax, dword [eax + 0x14]
call eax
xorps xmm0, xmm0
movss xmm1, dword [eax + 0x58]
comiss xmm0, xmm1
movzx edi, word [eax + 0x60]
movss dword [ebp - 0xa8], xmm1
jae 0x1001ea54
mov ebx, dword [esi + 0x30]
mov al, byte [esi + 0x42]
mov ecx, dword [ebp - 0x98]
shr ebx, 3
shr al, 7
and bl, 1
and al, 1
cmp dword [ecx], 0
mov byte [ebp - 0x81], al
jg 0x1001e715
test al, al
jne 0x1001e715
test bl, bl
jne 0x1001e715
cmp edi, 0x47
je 0x1001e715
cmp edi, 0x59
jne 0x1001ea54
comiss xmm0, dword [ebp + 0x2c]
jae 0x1001ea54
mov ecx, dword [ebp - 0x90]
movq xmm0, qword [ebp + 0x18]
mov dword [ebp - 0xb0], 0
mov dword [ebp - 0xb4], 0
mov eax, dword [ecx]
mov dword [ebp - 0xb8], 0
mov esi, dword [eax + 0xc]
mov eax, dword [ebp - 0x88]
lea edx, [eax + 0xc]
mov dword [ebp - 0x90], edx
lea edx, [ebp - 0x7c]
push edx
push eax
lea eax, [ebp - 0xb8]
push eax
mov eax, dword [ebp + 0x20]
sub esp, 0xc
mov edx, esp
push dword [ebp - 0x90]
movq qword [edx], xmm0
mov dword [edx + 8], eax
call esi
test al, al
jne 0x1001e7a6
mov ecx, dword [0x1060b28c]
lea edx, [ebp - 0xb8]
push 0
push 0x600400b
push edx
mov eax, dword [ecx]
call dword [eax]
test eax, 0x600400b
je 0x1001ea54
mov ecx, dword [0x1060b2c4]
movsx edx, word [ebp - 0x3c]
push edx
mov eax, dword [ecx]
mov eax, dword [eax + 0x14]
call eax
movss xmm1, dword [0x1041ecf0]
movss dword [ebp - 0x88], xmm1
movzx ecx, word [eax + 0x60]
movss xmm0, dword [eax + 0x58]
mov edx, ecx
mov dword [ebp - 0x8c], edx
mov dword [ebp - 0xa0], ecx
movss dword [ebp - 0x80], xmm0
cmp edi, 0x59
je 0x1001e8e0
cmp edi, 0x47
je 0x1001e8e0
test bl, bl
jne 0x1001e8c1
cmp byte [ebp - 0x81], bl
jne 0x1001e8c1
cmp edi, 0x46
jne 0x1001e8a2
mov ecx, dword [0x1061121c]
mov eax, dword [ecx]
mov eax, dword [eax + 0x30]
mov dword [ebp - 0x9c], eax
call dword [ebp - 0x9c]
fstp dword [ebp - 0x9c]
movss xmm0, dword [ebp - 0x9c]
ucomiss xmm0, dword [0x1041ec1c]
lahf
test ah, 0x44
jp 0x1001e89d
mov ebx, dword [ebp - 0xa4]
test ebx, ebx
je 0x1001e89d
mov ecx, ebx
call fcn.100c5e90
test al, al
je 0x1001e89d
mov ecx, dword [0x1060b5e0]
mov ecx, dword [ecx + 0xaa8]
call fcn.100c5eb0
mov ecx, ebx
mov esi, eax
call fcn.100c5eb0
cmp eax, esi
jne 0x1001e89d
movss xmm0, dword [ebp + 0x30]
ucomiss xmm0, dword [0x1041ec1c]
movss dword [ebp - 0x80], xmm0
lahf
test ah, 0x44
jnp 0x1001ea54
movss xmm0, dword [0x1041eea8]
jmp 0x1001e8fd
movss xmm0, dword [ebp - 0x80]
addss xmm0, dword [ebp - 0xa8]
mulss xmm0, dword [0x1041ed50]
movss dword [ebp - 0x80], xmm0
movss xmm0, dword [0x1041eea8]
jmp 0x1001e8fd
movss xmm0, dword [0x1041edc4]
movss dword [ebp - 0x80], xmm0
movss xmm0, dword [0x1041eea8]
movss dword [ebp - 0x88], xmm1
jmp 0x1001e8fd
movss xmm0, dword [0x1041ecb0]
movss dword [ebp - 0x88], xmm0
movss xmm0, dword [0x1041eea8]
movss dword [ebp - 0x80], xmm0
mov eax, dword [ebp - 0xa0]
cmp edi, eax
jne 0x1001e928
cmp eax, 0x57
je 0x1001e923
cmp eax, 0x55
je 0x1001e923
cmp word [ebp - 0x8c], 0x4c
jne 0x1001e928
movss xmm0, dword [0x1041ee50]
movss dword [ebp - 0x80], xmm0
movss xmm0, dword [0x1041eee0]
sub esp, 8
divss xmm0, dword [ebp + 0x2c]
movss dword [esp + 4], xmm0
mov dword [esp], 0
call dword [sym.imp.api_ms_win_crt_math_l1_1_0.dll_fmaxf]
movss xmm0, dword [0x1041edc4]
divss xmm0, dword [ebp - 0x80]
fstp dword [ebp - 0xa0]
movss dword [esp + 4], xmm0
mov dword [esp], 0
call dword [sym.imp.api_ms_win_crt_math_l1_1_0.dll_fmaxf]
mov eax, dword [ebp - 0x90]
movss xmm1, dword [ebp - 0x70]
movss xmm2, dword [ebp - 0x6c]
movss xmm0, dword [ebp - 0x68]
subss xmm2, dword [eax + 4]
subss xmm1, dword [eax]
subss xmm0, dword [eax + 8]
mov esi, dword [ebp - 0x94]
fstp dword [ebp - 0x8c]
mulss xmm2, xmm2
mulss xmm1, xmm1
mulss xmm0, xmm0
addss xmm2, xmm1
movss xmm1, dword [ebp - 0x88]
mulss xmm1, dword [esi]
addss xmm2, xmm0
movss xmm0, dword [ebp - 0x8c]
mulss xmm2, xmm0
mulss xmm0, dword [0x1041eea8]
mulss xmm2, dword [0x1041ecac]
mulss xmm0, dword [ebp - 0xa0]
addss xmm0, xmm1
addss xmm2, xmm0
movss dword [esp + 4], xmm2
mov dword [esp], 0
call dword [sym.imp.api_ms_win_crt_math_l1_1_0.dll_fmaxf]
movss xmm0, dword [esi]
add esp, 8
movss xmm1, dword [0x1041edc4]
fstp dword [ebp - 0x8c]
subss xmm0, dword [ebp - 0x8c]
comiss xmm1, xmm0
movss dword [esi], xmm0
ja 0x1001ea54
mov eax, dword [ebp - 0xac]
movss xmm0, dword [ebp - 0x70]
movss dword [eax], xmm0
movss xmm0, dword [ebp - 0x6c]
movss dword [eax + 4], xmm0
movss xmm0, dword [ebp - 0x68]
movss dword [eax + 8], xmm0
mov eax, dword [ebp - 0x98]
dec dword [eax]
mov al, 1
jmp 0x1001ea56
xor al, al
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.102bb91c
mov esp, ebp
pop ebp
ret 0x30
push 0x10611210
call fcn.102bba07
add esp, 4
cmp dword [0x10611210], 0xffffffff
jne 0x1001e66a
mov dword [ebp - 4], 0
cmp byte [0x10439080], 0
jne 0x1001eb15
mov byte [0x10439080], 1
xor esi, esi
jmp 0x1001eab0
xor edx, edx
mov ebx, esi
xor edx, dword [0x104390a4]
xor ebx, dword [0x104390a0]
xor edx, 0xd28f2c5
xor ebx, 0x1de26cd5
mov ecx, edx
mov eax, ebx
shld ecx, eax, 0xd
xor edx, ecx
shl eax, 0xd
xor ebx, eax
mov ecx, edx
mov eax, ebx
shrd eax, ecx, 7
shr ecx, 7
xor ebx, eax
xor edx, ecx
mov ecx, ebx
shld edx, ecx, 0x11
shl ecx, 0x11
xor cl, byte [esi + 0x10439081]
xor cl, bl
mov byte [esi + 0x10439081], cl
inc esi
cmp esi, 0x1c
jb 0x1001eab0
mov esi, dword [ebp - 0x88]
mov ebx, dword [ebp - 0x98]
jmp 0x1001eb15
push ecx
push 0x1043909c
push 0x10439081
lea ecx, [ebp - 0x28]
call fcn.1001a620
mov byte [ebp - 4], 1
lea edx, [ebp - 0x28]
mov ecx, dword [0x1060b27c]
cmp dword [ebp - 0x14], 0x10
cmovae edx, dword [ebp - 0x28]
mov eax, dword [ecx]
push edx
mov eax, dword [eax + 0x40]
call eax
lea ecx, [ebp - 0x28]
mov dword [0x1061121c], eax
call fcn.10019dd0
push 0x10611210
mov dword [ebp - 4], 0xffffffff
call fcn.102bb9b6
add esp, 4
jmp 0x1001e66a