Function at 0x100ffec0
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x70
mov eax, dword [0x1025ab04]
xor eax, ebp
mov dword [ebp - 4], eax
push esi
push edi
push 0x1025b804
mov edi, ecx
call sub.MSVCP140.dll__Mtx_lock
add esp, 4
test eax, eax
jne 0x10100550
cmp byte [0x10192005], al
je 0x10100522
cmp byte [0x10192006], al
je 0x10100522
mov eax, dword [0x1025badc]
test eax, eax
jne 0x100fff0e
xor al, al
jmp 0x100fff11
mov al, byte [eax + 0x7c]
movss xmm0, dword [0x1016869c]
mov byte [0x1019200e], al
mov eax, dword [0x1025ba64]
push ebx
divss xmm0, dword [eax + 0x20]
cvttss2si eax, xmm0
mov dword [0x1019201c], eax
mov eax, dword [0x1026bccc]
test al, 1
jne 0x10100087
or eax, 1
cmp byte [0x1025a770], 0
mov dword [0x1026bccc], eax
je 0x100fffaa
cmp byte [0x1025a771], 0
jne 0x100ffff2
mov byte [0x1025a771], 1
xor esi, esi
xor edx, edx
mov ebx, esi
xor edx, dword [0x1025a794]
xor ebx, dword [0x1025a790]
xor edx, 0xd28f2c5
xor ebx, 0x1de26cd5
mov ecx, edx
mov eax, ebx
shld ecx, eax, 0xd
shl eax, 0xd
xor edx, ecx
xor ebx, eax
mov dword [ebp - 0x44], edx
mov eax, ebx
shrd eax, edx, 7
xor al, bl
xor byte [esi + 0x1025a772], al
inc esi
cmp esi, 0x19
jb 0x100fff66
jmp 0x100ffff2
xor esi, esi
nop dword [eax]
xor edx, edx
mov ebx, esi
xor edx, dword [0x1025a794]
xor ebx, dword [0x1025a790]
xor edx, 0xd28f2c5
xor ebx, 0x1de26cd5
mov ecx, edx
mov eax, ebx
shld ecx, eax, 0xd
shl eax, 0xd
xor edx, ecx
xor ebx, eax
mov dword [ebp - 0x44], edx
mov eax, ebx
shrd eax, edx, 7
xor al, bl
xor byte [esi + 0x1025a772], al
inc esi
cmp esi, 0x19
jb 0x100fffb0
push 0x18
push 0x1025a772
lea ecx, [ebp - 0x1c]
mov dword [ebp - 0x1c], 0
mov dword [ebp - 0xc], 0
mov dword [ebp - 8], 0xf
call fcn.10045f20
mov ecx, dword [0x1025ba9c]
lea edx, [ebp - 0x1c]
cmp dword [ebp - 8], 0x10
cmovae edx, dword [ebp - 0x1c]
mov eax, dword [ecx]
push edx
mov eax, dword [eax + 0x40]
call eax
mov edx, dword [ebp - 8]
mov ecx, eax
mov dword [0x1026bcc8], ecx
cmp edx, 0x10
jb 0x10100073
mov ecx, dword [ebp - 0x1c]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x10100063
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
jbe 0x10100063
call dword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
push edx
push ecx
call fcn.101041fa
mov ecx, dword [0x1026bcc8]
add esp, 8
mov dword [ebp - 0xc], 0
mov dword [ebp - 8], 0xf
mov byte [ebp - 0x1c], 0
jmp 0x1010008d
mov ecx, dword [0x1026bcc8]
test ecx, ecx
je 0x101000a4
mov eax, dword [ecx]
mov eax, dword [eax + 0x34]
call eax
add eax, 0xfffffffe
xor ecx, ecx
test eax, eax
cmovg ecx, eax
jmp 0x101000a9
mov ecx, 0xe
cmp byte [0x1019200e], 0
mov dword [0x1019203c], ecx
je 0x101000d1
cmp ecx, 6
jle 0x101000c4
mov ecx, 6
jmp 0x101000cb
xor eax, eax
test ecx, ecx
cmovs ecx, eax
mov dword [0x1019203c], ecx
mov ecx, dword [0x1025bb64]
mov eax, dword [ecx]
mov eax, dword [eax + 0x30]
mov dword [ebp - 0x20], eax
call dword [ebp - 0x20]
mov esi, dword [0x10192084]
fstp dword [0x1019205c]
test esi, esi
je 0x1010040e
mov eax, dword [0x1025bc8c]
test al, 1
jne 0x10100115
mov ecx, dword [0x1025bc64]
or eax, 1
mov dword [0x1025bc8c], eax
mov dword [0x1025bc88], ecx
jmp 0x1010011b
mov ecx, dword [0x1025bc88]
mov eax, dword [0x10192080]
mov ebx, dword [0x1025d898]
mov al, byte [ecx + eax]
mov ecx, dword [0x1025d8c4]
mov byte [0x10192008], al
test cl, 1
jne 0x1010014c
or ecx, 1
mov edx, ebx
mov dword [0x1025d8c4], ecx
mov dword [0x1025d8c0], edx
jmp 0x10100152
mov edx, dword [0x1025d8c0]
movsx eax, word [edx + esi]
add eax, 0xfffffff7
cmp eax, 0x1f
ja case.0x10100165.10
movzx eax, byte [eax + 0x1010056c]
jmp dword [eax*4 + 0x10100564]
mov al, 1
jmp 0x10100172
xor al, al
mov byte [0x10192009], al
test cl, 1
jne 0x1010018d
or ecx, 1
mov edx, ebx
mov dword [0x1025d8c4], ecx
mov dword [0x1025d8c0], edx
movzx eax, word [edx + esi]
mov ecx, esi
add eax, 0xffffffd5
cmp ax, 5
setbe byte [0x1019200a]
call fcn.1005eee0
mov ecx, eax
test ecx, ecx
jne 0x101001b0
xor al, al
jmp 0x101001f3
mov eax, dword [0x1025d8c4]
test al, 1
jne 0x101001cd
or eax, 1
mov dword [0x1025d8c4], eax
mov eax, dword [0x1025d898]
mov dword [0x1025d8c0], eax
jmp 0x101001d2
mov eax, dword [0x1025d8c0]
cmp word [esi + eax], 0x1f
je 0x101001f1
mov eax, dword [ecx + 0xc8]
test eax, eax
je 0x101001f1
cmp eax, 7
jl 0x101001ed
cmp eax, 0x10
jle 0x101001f1
xor al, al
jmp 0x101001f3
mov al, 1
cmp byte [0x1024ea68], 0
mov byte [0x1019200b], al
jne 0x10100230
push 0
call fcn.100d5a90
add esp, 4
cmp eax, 0x21
jle 0x10100217
mov ecx, 0x21
jmp 0x10100220
xor edx, edx
mov ecx, eax
test eax, eax
cmovs ecx, edx
mov dword [0x1024ed5c], eax
mov al, byte [0x1019200b]
mov dword [0x1024dbc8], ecx
test al, al
jne 0x10100361
cmp byte [0x1024ebc0], al
je 0x10100361
mov ecx, dword [0x10245548]
push 0x100ff290
call fcn.100feb80
mov ebx, dword [0x10245548]
mov dword [ebp - 0x20], ebx
mov dword [ebp - 0x28], eax
mov dword [ebp - 0x24], edx
lea esi, [ebx + 0xc0]
push esi
call sub.MSVCP140.dll__Mtx_lock
add esp, 4
test eax, eax
jne 0x10100556
mov eax, dword [ebp - 0x20]
add ebx, 0x98
mov ecx, dword [ebp - 0x24]
mov dword [ebp - 0x40], eax
mov eax, dword [ebp - 0x28]
mov dword [ebp - 0x38], eax
mov dword [ebp - 0x34], ecx
movups xmm0, xmmword [ebp - 0x40]
movups xmmword [ebp - 0x40], xmm0
nop word [eax + eax]
mov eax, dword [ebp - 0x40]
movq xmm0, qword [eax + 0x120]
movq qword [ebp - 0x30], xmm0
mov ecx, dword [ebp - 0x30]
mov eax, dword [ebp - 0x2c]
nop
cmp dword [ebp - 0x34], eax
ja 0x101002de
jb 0x101002c3
cmp dword [ebp - 0x38], ecx
jae 0x101002de
mov ecx, dword [ebp - 0x40]
lea eax, [ebp - 0x38]
push eax
lea eax, [ebp - 0x48]
push eax
lea ecx, [ecx + 0x78]
call fcn.100722c0
mov eax, dword [eax]
cmp dword [eax + 0x10], 1
je 0x101002ea
push esi
push ebx
call sub.MSVCP140.dll__Cnd_wait
add esp, 8
jmp 0x101002a0
mov ecx, dword [ebp - 0x20]
lea eax, [ebp - 0x28]
push eax
lea eax, [ebp - 0x30]
push eax
lea ecx, [ecx + 0x78]
call fcn.100722c0
lea ecx, [ebp - 0x70]
mov eax, dword [eax]
add eax, 0x18
push eax
call fcn.1007f430
push esi
call sub.MSVCP140.dll__Mtx_unlock
mov eax, dword [ebp - 0x4c]
add esp, 4
and eax, 0xfffffffc
je 0x1010055c
add eax, 4
push 0x1025b37c
push eax
call sub.VCRUNTIME140.dll___std_type_info_compare
add esp, 8
test eax, eax
jne 0x1010055c
movups xmm0, xmmword [ebp - 0x70]
lea ecx, [ebp - 0x70]
movups xmmword [ebp - 0x40], xmm0
call fcn.100fedf0
movups xmm0, xmmword [ebp - 0x40]
psrldq xmm0, 4
movd eax, xmm0
test eax, eax
setg byte [0x1019200c]
jmp 0x10100368
mov byte [0x1019200c], 0
cmp dword [0x10192084], 0
je 0x1010040e
test byte [0x1024ed08], 1
je 0x1010040e
cmp byte [0x10192008], 0
je 0x1010040e
cmp byte [0x10192009], 0
je 0x1010040e
mov ecx, dword [0x1025ba68]
push 0xff000000
mov eax, dword [ecx]
call dword [eax + 0x38]
mov eax, dword [0x1025e490]
mov ecx, dword [0x1025ba68]
movss xmm0, dword [eax + 0x1c]
mulss xmm0, dword [0x10168670]
mov esi, dword [ecx]
cvttss2si eax, dword [eax + 0x18]
cvttss2si edx, xmm0
push edx
push eax
push edx
push 0
call dword [esi + 0x4c]
mov ecx, dword [0x1025ba68]
push 0xff000000
mov eax, dword [ecx]
call dword [eax + 0x38]
mov eax, dword [0x1025e490]
mov ecx, dword [0x1025ba68]
movss xmm0, dword [eax + 0x18]
mulss xmm0, dword [0x10168670]
mov edx, dword [ecx]
cvttss2si eax, dword [eax + 0x1c]
cvttss2si esi, xmm0
push eax
push esi
push 0
push esi
call dword [edx + 0x4c]
mov eax, dword [edi + 0xc]
mov dword [edi + 0x10], eax
mov eax, dword [0x10261878]
pop ebx
cmp byte [eax + 0x10], 0
je 0x10100533
mov ecx, dword [0x1025e490]
lea edx, [eax + 4]
push 1
lea eax, [edi + 4]
push eax
push edx
call fcn.10071aa0
test al, al
je 0x10100533
movsd xmm0, qword [0x10172fa0]
xorps xmm1, xmm1
movss dword [ebp - 0x20], xmm1
movsd qword [ebp - 0x48], xmm0
movaps xmm0, xmm1
call fcn.10104550
mov eax, dword [0x10261878]
movaps xmm2, xmm0
mov ecx, dword [0x1025e490]
movaps xmm1, xmm2
shufps xmm1, xmm2, 1
mulss xmm1, dword [0x10172fac]
mov dword [ebp - 0x28], 0
mulss xmm2, dword [0x10172fac]
mov dword [ebp - 0x24], 0
addss xmm1, dword [eax + 8]
movss xmm0, dword [eax + 0xc]
addss xmm2, dword [eax + 4]
push 1
lea eax, [ebp - 0x28]
movss dword [ebp - 0x34], xmm0
push eax
lea eax, [ebp - 0x3c]
movss dword [ebp - 0x38], xmm1
push eax
movss dword [ebp - 0x3c], xmm2
call fcn.10071aa0
test al, al
je 0x101004fc
movss xmm0, dword [ebp - 0x28]
mov edx, dword [edi + 0x10]
movss dword [ebp - 0x30], xmm0
movss xmm0, dword [ebp - 0x24]
movss dword [ebp - 0x2c], xmm0
cmp edx, dword [edi + 0x14]
je 0x101004ef
mov eax, dword [ebp - 0x30]
mov ecx, dword [ebp - 0x2c]
mov dword [edx], eax
mov dword [edx + 4], ecx
add dword [edi + 0x10], 8
jmp 0x101004fc
lea eax, [ebp - 0x30]
push eax
push edx
lea ecx, [edi + 0xc]
call fcn.100f3450
movss xmm1, dword [ebp - 0x20]
addss xmm1, dword [0x10174028]
movsd xmm2, qword [ebp - 0x48]
cvtps2pd xmm0, xmm1
movss dword [ebp - 0x20], xmm1
comisd xmm2, xmm0
jae 0x10100456
jmp 0x10100533
mov dword [0x10192008], 0
mov byte [0x1019200c], 0
push 0x1025b804
call sub.MSVCP140.dll__Mtx_unlock
mov ecx, dword [ebp - 4]
add esp, 4
xor ecx, ebp
pop edi
pop esi
call fcn.10104522
mov esp, ebp
pop ebp
ret
push eax
call sub.MSVCP140.dll_void___cdecl_std::_Throw_C_error_int_
push eax
call sub.MSVCP140.dll_void___cdecl_std::_Throw_C_error_int_
call fcn.1007f5c0
nop dword [eax]
insb byte es:[edi], dx
add dword [eax], edx
adc byte [eax + 1], dh
adc byte [eax], dl
add byte [ecx], al
add byte [ecx], al
add dword [ecx], eax
add dword [ecx], eax
add dword [ecx], eax
add dword [ecx], eax
add dword [ecx], eax
add dword [ecx], eax
add dword [ecx], eax
add dword [ecx], eax
add dword [ecx], eax
add dword [ecx], eax
add dword [ecx], eax
add dword [ecx], eax
add dword [eax], eax
add dword [eax], eax
int3