Function at 0x10107aa0
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x70
mov eax, dword [0x1029ad64]
xor eax, ebp
mov dword [ebp - 4], eax
push esi
push edi
push 0x1029b8d4
mov edi, ecx
call sub.MSVCP140.dll__Mtx_lock
add esp, 4
test eax, eax
jne 0x10108130
cmp byte [0x101cf006], al
je 0x10108102
cmp byte [0x101cf007], al
je 0x10108102
mov eax, dword [0x1029bbac]
test eax, eax
jne 0x10107aee
xor al, al
jmp 0x10107af1
mov al, byte [eax + 0x7c]
movss xmm0, dword [0x1019e820]
mov byte [0x101cf00f], al
mov eax, dword [0x1029bb34]
push ebx
divss xmm0, dword [eax + 0x20]
cvttss2si eax, xmm0
mov dword [0x101cf01c], eax
mov eax, dword [0x102adedc]
test al, 1
jne 0x10107c67
or eax, 1
cmp byte [0x1029a858], 0
mov dword [0x102adedc], eax
je 0x10107b8a
cmp byte [0x1029a859], 0
jne 0x10107bd2
mov byte [0x1029a859], 1
xor esi, esi
xor edx, edx
mov ebx, esi
xor edx, dword [0x1029a87c]
xor ebx, dword [0x1029a878]
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 + 0x1029a85a], al
inc esi
cmp esi, 0x19
jb 0x10107b46
jmp 0x10107bd2
xor esi, esi
nop dword [eax]
xor edx, edx
mov ebx, esi
xor edx, dword [0x1029a87c]
xor ebx, dword [0x1029a878]
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 + 0x1029a85a], al
inc esi
cmp esi, 0x19
jb 0x10107b90
push 0x18
push 0x1029a85a
lea ecx, [ebp - 0x1c]
mov dword [ebp - 0x1c], 0
mov dword [ebp - 0xc], 0
mov dword [ebp - 8], 0xf
call fcn.100464c0
mov ecx, dword [0x1029bb6c]
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 [0x102aded8], ecx
cmp edx, 0x10
jb 0x10107c53
mov ecx, dword [ebp - 0x1c]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x10107c43
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
jbe 0x10107c43
call dword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
push edx
push ecx
call fcn.10138f1a
mov ecx, dword [0x102aded8]
add esp, 8
mov dword [ebp - 0xc], 0
mov dword [ebp - 8], 0xf
mov byte [ebp - 0x1c], 0
jmp 0x10107c6d
mov ecx, dword [0x102aded8]
test ecx, ecx
je 0x10107c84
mov eax, dword [ecx]
mov eax, dword [eax + 0x34]
call eax
add eax, 0xfffffffe
xor ecx, ecx
test eax, eax
cmovg ecx, eax
jmp 0x10107c89
mov ecx, 0xe
cmp byte [0x101cf00f], 0
mov dword [0x101cf040], ecx
je 0x10107cb1
cmp ecx, 6
jle 0x10107ca4
mov ecx, 6
jmp 0x10107cab
xor eax, eax
test ecx, ecx
cmovs ecx, eax
mov dword [0x101cf040], ecx
mov ecx, dword [0x1029bc34]
mov eax, dword [ecx]
mov eax, dword [eax + 0x30]
mov dword [ebp - 0x20], eax
call dword [ebp - 0x20]
mov esi, dword [0x101cf09c]
fstp dword [0x101cf064]
test esi, esi
je 0x10107fee
mov eax, dword [0x1029bd8c]
test al, 1
jne 0x10107cf5
mov ecx, dword [0x1029bd64]
or eax, 1
mov dword [0x1029bd8c], eax
mov dword [0x1029bd88], ecx
jmp 0x10107cfb
mov ecx, dword [0x1029bd88]
mov eax, dword [0x101cf098]
mov ebx, dword [0x1029e0b8]
mov al, byte [ecx + eax]
mov ecx, dword [0x1029e0e4]
mov byte [0x101cf009], al
test cl, 1
jne 0x10107d2c
or ecx, 1
mov edx, ebx
mov dword [0x1029e0e4], ecx
mov dword [0x1029e0e0], edx
jmp 0x10107d32
mov edx, dword [0x1029e0e0]
movsx eax, word [edx + esi]
add eax, 0xfffffff7
cmp eax, 0x1f
ja case.0x10107d45.10
movzx eax, byte [eax + 0x1010814c]
jmp dword [eax*4 + 0x10108144]
mov al, 1
jmp 0x10107d52
xor al, al
mov byte [0x101cf00a], al
test cl, 1
jne 0x10107d6d
or ecx, 1
mov edx, ebx
mov dword [0x1029e0e4], ecx
mov dword [0x1029e0e0], edx
movzx eax, word [edx + esi]
mov ecx, esi
add eax, 0xffffffd5
cmp ax, 5
setbe byte [0x101cf00b]
call fcn.10060660
mov ecx, eax
test ecx, ecx
jne 0x10107d90
xor al, al
jmp 0x10107dd3
mov eax, dword [0x1029e0e4]
test al, 1
jne 0x10107dad
or eax, 1
mov dword [0x1029e0e4], eax
mov eax, dword [0x1029e0b8]
mov dword [0x1029e0e0], eax
jmp 0x10107db2
mov eax, dword [0x1029e0e0]
cmp word [esi + eax], 0x1f
je 0x10107dd1
mov eax, dword [ecx + 0xc8]
test eax, eax
je 0x10107dd1
cmp eax, 7
jl 0x10107dcd
cmp eax, 0x10
jle 0x10107dd1
xor al, al
jmp 0x10107dd3
mov al, 1
cmp byte [0x1028e7ac], 0
mov byte [0x101cf00c], al
jne 0x10107e10
push 0
call fcn.100dc3d0
add esp, 4
cmp eax, 0x21
jle 0x10107df7
mov ecx, 0x21
jmp 0x10107e00
xor edx, edx
mov ecx, eax
test eax, eax
cmovs ecx, edx
mov dword [0x1028eaa0], eax
mov al, byte [0x101cf00c]
mov dword [0x1028d900], ecx
test al, al
jne 0x10107f41
cmp byte [0x1028e904], al
je 0x10107f41
mov ecx, dword [0x102853d8]
push 0x10106e70
call fcn.10106760
mov ebx, dword [0x102853d8]
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 0x10108136
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 0x10107ebe
jb 0x10107ea3
cmp dword [ebp - 0x38], ecx
jae 0x10107ebe
mov ecx, dword [ebp - 0x40]
lea eax, [ebp - 0x38]
push eax
lea eax, [ebp - 0x48]
push eax
lea ecx, [ecx + 0x78]
call fcn.100743a0
mov eax, dword [eax]
cmp dword [eax + 0x10], 1
je 0x10107eca
push esi
push ebx
call sub.MSVCP140.dll__Cnd_wait
add esp, 8
jmp 0x10107e80
mov ecx, dword [ebp - 0x20]
lea eax, [ebp - 0x28]
push eax
lea eax, [ebp - 0x30]
push eax
lea ecx, [ecx + 0x78]
call fcn.100743a0
lea ecx, [ebp - 0x70]
mov eax, dword [eax]
add eax, 0x18
push eax
call fcn.10083d50
push esi
call sub.MSVCP140.dll__Mtx_unlock
mov eax, dword [ebp - 0x4c]
add esp, 4
and eax, 0xfffffffc
je 0x1010813c
add eax, 4
push 0x1029b3f4
push eax
call sub.VCRUNTIME140.dll___std_type_info_compare
add esp, 8
test eax, eax
jne 0x1010813c
movups xmm0, xmmword [ebp - 0x70]
lea ecx, [ebp - 0x70]
movups xmmword [ebp - 0x40], xmm0
call fcn.101069d0
movups xmm0, xmmword [ebp - 0x40]
psrldq xmm0, 4
movd eax, xmm0
test eax, eax
setg byte [0x101cf00d]
jmp 0x10107f48
mov byte [0x101cf00d], 0
cmp dword [0x101cf09c], 0
je 0x10107fee
test byte [0x1028ea4c], 1
je 0x10107fee
cmp byte [0x101cf009], 0
je 0x10107fee
cmp byte [0x101cf00a], 0
je 0x10107fee
mov ecx, dword [0x1029bb38]
push 0xff000000
mov eax, dword [ecx]
call dword [eax + 0x38]
mov eax, dword [0x102a0500]
mov ecx, dword [0x1029bb38]
movss xmm0, dword [eax + 0x1c]
mulss xmm0, dword [0x1019e7f4]
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 [0x1029bb38]
push 0xff000000
mov eax, dword [ecx]
call dword [eax + 0x38]
mov eax, dword [0x102a0500]
mov ecx, dword [0x1029bb38]
movss xmm0, dword [eax + 0x18]
mulss xmm0, dword [0x1019e7f4]
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 [0x102a3948]
pop ebx
cmp byte [eax + 0x10], 0
je 0x10108113
mov ecx, dword [0x102a0500]
lea edx, [eax + 4]
push 1
lea eax, [edi + 4]
push eax
push edx
call fcn.10073b30
test al, al
je 0x10108113
movsd xmm0, qword [0x101aa8f8]
xorps xmm1, xmm1
movss dword [ebp - 0x20], xmm1
movsd qword [ebp - 0x48], xmm0
movaps xmm0, xmm1
call fcn.10139270
mov eax, dword [0x102a3948]
movaps xmm2, xmm0
mov ecx, dword [0x102a0500]
movaps xmm1, xmm2
shufps xmm1, xmm2, 1
mulss xmm1, dword [0x101aabcc]
mov dword [ebp - 0x28], 0
mulss xmm2, dword [0x101aabcc]
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.10073b30
test al, al
je 0x101080dc
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 0x101080cf
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 0x101080dc
lea eax, [ebp - 0x30]
push eax
push edx
lea ecx, [edi + 0xc]
call fcn.100fb4d0
movss xmm1, dword [ebp - 0x20]
addss xmm1, dword [0x101aba3c]
movsd xmm2, qword [ebp - 0x48]
cvtps2pd xmm0, xmm1
movss dword [ebp - 0x20], xmm1
comisd xmm2, xmm0
jae 0x10108036
jmp 0x10108113
mov dword [0x101cf009], 0
mov byte [0x101cf00d], 0
push 0x1029b8d4
call sub.MSVCP140.dll__Mtx_unlock
mov ecx, dword [ebp - 4]
add esp, 4
xor ecx, ebp
pop edi
pop esi
call fcn.10139242
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.10084170
nop dword [eax]
dec esp
jge 269517143
adc byte [eax + 0x7d], dl
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
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 byte [ecx], al
add ah, cl
int3