Function at 0x10107930
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x74
mov eax, dword [0x10266a40]
xor eax, ebp
mov dword [ebp - 4], eax
push 0x10267784
mov dword [ebp - 0x34], ecx
call sub.MSVCP140.dll__Mtx_lock
add esp, 4
test eax, eax
jne 0x10107fbb
cmp dword [0x102677b0], 0x7fffffff
je 0x10107fc2
push esi
cmp byte [0x1019b005], al
je 0x10107f8e
cmp byte [0x1019b006], al
je 0x10107f8e
mov eax, dword [0x10267a5c]
test eax, eax
jne 0x1010798e
xor al, al
jmp 0x10107991
mov al, byte [eax + 0x7c]
movss xmm0, dword [0x101716c4]
mov byte [0x1019b00e], al
mov eax, dword [0x102679e4]
push ebx
divss xmm0, dword [eax + 0x20]
cvttss2si eax, xmm0
mov dword [0x1019b01c], eax
mov eax, dword [0x102756ac]
test al, 1
jne 0x10107ab6
or eax, 1
cmp byte [0x10266688], 0
mov dword [0x102756ac], eax
je 0x10107a30
cmp byte [0x10266689], 0
jne 0x10107a7a
mov byte [0x10266689], 1
xor esi, esi
xor edx, edx
mov ebx, esi
xor edx, dword [0x102666ac]
xor ebx, dword [0x102666a8]
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 - 0x20], edx
mov eax, ebx
shrd eax, edx, 7
xor al, byte [esi + 0x1026668a]
xor al, bl
mov byte [esi + 0x1026668a], al
inc esi
cmp esi, 0x19
jb 0x101079e6
jmp 0x10107a7a
xor esi, esi
xor edx, edx
mov ebx, esi
xor edx, dword [0x102666ac]
xor ebx, dword [0x102666a8]
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 - 0x20], edx
mov eax, ebx
shrd eax, edx, 7
xor al, byte [esi + 0x1026668a]
xor al, bl
mov byte [esi + 0x1026668a], al
inc esi
cmp esi, 0x19
jb 0x10107a32
lea eax, [ebp - 0x25]
push eax
push 0x102666a2
push 0x1026668a
lea ecx, [ebp - 0x1c]
call fcn.1004ef20
mov ecx, dword [0x10267a1c]
lea edx, [ebp - 0x1c]
cmp dword [ebp - 8], 0xf
cmova edx, dword [ebp - 0x1c]
mov eax, dword [ecx]
push edx
mov eax, dword [eax + 0x40]
call eax
lea ecx, [ebp - 0x1c]
mov dword [0x102756a8], eax
call fcn.100446f0
mov ecx, dword [0x102756a8]
test ecx, ecx
je 0x10107ad3
mov eax, dword [ecx]
mov eax, dword [eax + 0x34]
call eax
add eax, 0xfffffffe
xor edx, edx
test eax, eax
cmovg edx, eax
jmp 0x10107ad8
mov edx, 0xe
cmp byte [0x1019b00e], 0
mov dword [0x1019b03c], edx
je 0x10107b12
test edx, edx
mov dword [ebp - 0x3c], 6
mov eax, 0x1019b03c
mov dword [ebp - 0x2c], 0
lea ecx, [ebp - 0x2c]
cmovns ecx, eax
cmp edx, 6
lea eax, [ebp - 0x3c]
cmovle eax, ecx
mov eax, dword [eax]
mov dword [0x1019b03c], eax
mov ecx, dword [0x10267ae4]
mov eax, dword [ecx]
mov eax, dword [eax + 0x30]
mov dword [ebp - 0x3c], eax
call dword [ebp - 0x3c]
mov esi, dword [0x1019b084]
fstp dword [0x1019b05c]
test esi, esi
je 0x10107e78
mov eax, dword [0x10267c0c]
test al, 1
jne 0x10107b56
mov ecx, dword [0x10267be4]
or eax, 1
mov dword [0x10267c0c], eax
mov dword [0x10267c08], ecx
jmp 0x10107b5c
mov ecx, dword [0x10267c08]
mov eax, dword [0x1019b080]
push edi
mov edi, dword [0x10267ca8]
mov al, byte [ecx + eax]
mov ecx, dword [0x10267cd4]
mov byte [0x1019b008], al
test cl, 1
jne 0x10107b8e
or ecx, 1
mov edx, edi
mov dword [0x10267cd4], ecx
mov dword [0x10267cd0], edx
jmp 0x10107b94
mov edx, dword [0x10267cd0]
movsx eax, word [edx + esi]
add eax, 0xfffffff7
cmp eax, 0x1f
ja case.0x10107ba7.10
movzx eax, byte [eax + 0x10107ff8]
jmp dword [eax*4 + 0x10107ff0]
mov al, 1
jmp 0x10107bb4
xor al, al
mov byte [0x1019b009], al
test cl, 1
jne 0x10107bcf
or ecx, 1
mov edx, edi
mov dword [0x10267cd4], ecx
mov dword [0x10267cd0], edx
movzx eax, word [edx + esi]
mov ecx, esi
add eax, 0xffffffd5
cmp ax, 5
setbe byte [0x1019b00a]
call fcn.1005f460
mov ecx, eax
test ecx, ecx
jne 0x10107bf2
xor al, al
jmp 0x10107c35
mov eax, dword [0x10267cd4]
test al, 1
jne 0x10107c0f
or eax, 1
mov dword [0x10267cd4], eax
mov eax, dword [0x10267ca8]
mov dword [0x10267cd0], eax
jmp 0x10107c14
mov eax, dword [0x10267cd0]
cmp word [esi + eax], 0x1f
je 0x10107c33
mov eax, dword [ecx + 0xc8]
test eax, eax
je 0x10107c33
cmp eax, 7
jl 0x10107c2f
cmp eax, 0x10
jle 0x10107c33
xor al, al
jmp 0x10107c35
mov al, 1
cmp byte [0x10259d90], 0
mov byte [0x1019b00b], al
jne 0x10107c86
push 0
call fcn.100db3b0
mov edx, eax
mov dword [ebp - 0x20], 0x21
add esp, 4
mov dword [ebp - 0x2c], edx
test edx, edx
mov dword [ebp - 0x3c], 0
lea eax, [ebp - 0x2c]
mov dword [0x1025a084], edx
lea ecx, [ebp - 0x3c]
cmovns ecx, eax
cmp edx, 0x21
lea eax, [ebp - 0x20]
cmovle eax, ecx
mov eax, dword [eax]
mov dword [0x10258ef0], eax
mov al, byte [0x1019b00b]
test al, al
jne 0x10107dc6
cmp byte [0x10259ee8], al
je 0x10107dc6
mov ecx, dword [0x102507c0]
push 0x10106c90
call fcn.101065c0
mov ebx, dword [0x102507c0]
mov dword [ebp - 0x24], eax
mov dword [ebp - 0x20], edx
lea esi, [ebx + 0xc0]
push esi
call sub.MSVCP140.dll__Mtx_lock
add esp, 4
test eax, eax
jne 0x10107fd3
cmp dword [esi + 0x2c], 0x7fffffff
je 0x10107fda
mov eax, dword [ebp - 0x10]
lea edi, [ebx + 0x98]
mov ecx, dword [ebp - 0x20]
mov edx, ebx
mov dword [ebp - 0x10], eax
mov eax, dword [ebp - 0x24]
mov dword [ebp - 0x14], edx
mov dword [ebp - 0xc], eax
mov dword [ebp - 8], ecx
nop word [eax + eax]
movq xmm0, qword [edx + 0x120]
movq qword [ebp - 0x40], xmm0
mov ecx, dword [ebp - 0x40]
mov eax, dword [ebp - 0x3c]
nop
cmp dword [ebp - 8], eax
ja 0x10107d3b
jb 0x10107d20
cmp dword [ebp - 0xc], ecx
jae 0x10107d3b
mov ecx, dword [ebp - 0x14]
lea eax, [ebp - 0xc]
push eax
lea eax, [ebp - 0x30]
push eax
lea ecx, [ecx + 0x78]
call fcn.10072e40
mov eax, dword [eax]
cmp dword [eax + 0x10], 1
je 0x10107d4a
push esi
push edi
call sub.MSVCP140.dll__Cnd_wait
mov edx, dword [ebp - 0x14]
add esp, 8
jmp 0x10107d00
lea eax, [ebp - 0x24]
push eax
lea eax, [ebp - 0x40]
push eax
lea ecx, [ebx + 0x78]
call fcn.10072e40
lea ecx, [ebp - 0x74]
mov eax, dword [eax]
add eax, 0x18
push eax
call fcn.10080440
push esi
call sub.MSVCP140.dll__Mtx_unlock
mov eax, dword [ebp - 0x50]
add esp, 4
and eax, 0xfffffffc
je 0x10107fe8
add eax, 4
push 0x102672fc
push eax
call sub.VCRUNTIME140.dll___std_type_info_compare
add esp, 8
test eax, eax
jne 0x10107fe8
lea eax, [ebp - 0x74]
movups xmm0, xmmword [eax]
mov eax, dword [eax + 0x10]
lea ecx, [ebp - 0x74]
mov dword [ebp - 0x3c], eax
movups xmmword [ebp - 0x14], xmm0
call fcn.10106850
movups xmm0, xmmword [ebp - 0x14]
psrldq xmm0, 4
movd eax, xmm0
test eax, eax
setg byte [0x1019b00c]
jmp 0x10107dcd
mov byte [0x1019b00c], 0
cmp dword [0x1019b084], 0
pop edi
je 0x10107e78
test byte [0x1025a030], 1
je 0x10107e78
cmp byte [0x1019b008], 0
je 0x10107e78
cmp byte [0x1019b009], 0
je 0x10107e78
mov ecx, dword [0x102679e8]
push 0xff000000
mov eax, dword [ecx]
call dword [eax + 0x38]
mov eax, dword [0x102688a0]
mov ecx, dword [0x102679e8]
movss xmm0, dword [eax + 0x1c]
mulss xmm0, dword [0x10171698]
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 [0x102679e8]
push 0xff000000
mov eax, dword [ecx]
call dword [eax + 0x38]
mov eax, dword [0x102688a0]
mov ecx, dword [0x102679e8]
movss xmm0, dword [eax + 0x18]
mulss xmm0, dword [0x10171698]
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 ecx, dword [ebp - 0x34]
mov eax, dword [ecx + 0xc]
lea esi, [ecx + 0xc]
pop ebx
cmp eax, dword [esi + 4]
je 0x10107e8a
mov dword [esi + 4], eax
mov eax, dword [0x1026bc58]
cmp byte [eax + 0x10], 0
je 0x10107f9f
lea edx, [eax + 4]
push 1
lea eax, [ecx + 4]
mov ecx, dword [0x102688a0]
push eax
push edx
call fcn.10072530
test al, al
je 0x10107f9f
xorps xmm1, xmm1
movss dword [ebp - 0x2c], xmm1
nop
movaps xmm0, xmm1
call fcn.1010c1d0
mov eax, dword [0x1026bc58]
movaps xmm2, xmm0
mov ecx, dword [0x102688a0]
movaps xmm1, xmm2
shufps xmm1, xmm2, 1
mulss xmm1, dword [0x1017bdbc]
mov dword [ebp - 0x38], 0
mulss xmm2, dword [0x1017bdbc]
mov dword [ebp - 0x34], 0
addss xmm1, dword [eax + 8]
movss xmm0, dword [eax + 0xc]
addss xmm2, dword [eax + 4]
push 1
lea eax, [ebp - 0x38]
movss dword [ebp - 0x3c], xmm0
push eax
lea eax, [ebp - 0x44]
movss dword [ebp - 0x40], xmm1
push eax
movss dword [ebp - 0x44], xmm2
call fcn.10072530
test al, al
je 0x10107f65
movss xmm0, dword [ebp - 0x38]
mov edx, dword [esi + 4]
movss dword [ebp - 0x24], xmm0
movss xmm0, dword [ebp - 0x34]
movss dword [ebp - 0x20], xmm0
cmp edx, dword [esi + 8]
je 0x10107f59
mov eax, dword [ebp - 0x24]
mov ecx, dword [ebp - 0x20]
mov dword [edx], eax
mov dword [edx + 4], ecx
add dword [esi + 4], 8
jmp 0x10107f65
lea eax, [ebp - 0x24]
mov ecx, esi
push eax
push edx
call fcn.1007a220
movss xmm1, dword [ebp - 0x2c]
addss xmm1, dword [0x1017ce28]
movsd xmm2, qword [0x1017bdb0]
cvtps2pd xmm0, xmm1
movss dword [ebp - 0x2c], xmm1
comisd xmm2, xmm0
jae 0x10107ec0
jmp 0x10107f9f
mov dword [0x1019b008], 0
mov byte [0x1019b00c], 0
push 0x10267784
call sub.MSVCP140.dll__Mtx_unlock
mov ecx, dword [ebp - 4]
add esp, 4
xor ecx, ebp
pop esi
call fcn.1010c1a2
mov esp, ebp
pop ebp
ret
push 5
call sub.MSVCP140.dll_void___cdecl_std::_Throw_Cpp_error_int_
push 6
mov dword [0x102677b0], 0x7ffffffe
call sub.MSVCP140.dll_void___cdecl_std::_Throw_Cpp_error_int_
push 5
call sub.MSVCP140.dll_void___cdecl_std::_Throw_Cpp_error_int_
push 6
mov dword [esi + 0x2c], 0x7ffffffe
call sub.MSVCP140.dll_void___cdecl_std::_Throw_Cpp_error_int_
call fcn.100805d0
nop dword [eax]
scasb al, byte es:[edi]
jnp 269516803
adc byte [edx + 0x10107b], dh
add dword [eax], 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 [ecx], eax
add dword [ecx], eax
add byte [ecx], al
add ah, cl
int3