Function at 0x100686e0
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x134
mov eax, dword [0x10331c40]
xor eax, ebp
mov dword [ebp - 4], eax
mov ecx, dword [0x1020cf3c]
sub ecx, dword [0x1020cf44]
xor ecx, dword [0x1020cf40]
add ecx, 4
mov edx, dword [ecx + 0x10]
lea eax, [ecx + 0x10]
push edi
mov edi, dword [ebp + 8]
mov dword [ebp - 0x70], edi
cmp edx, 0x100
jb 0x10068734
cmp dword [ecx + 0x14], 0xf
jbe 0x10068725
mov ecx, dword [ecx]
mov dword [eax], 0x100
mov byte [ecx + 0x100], 0
jmp 0x10068743
mov eax, 0x100
push 0
sub eax, edx
push eax
call fcn.1004afd0
mov eax, dword [0x1020cf3c]
sub eax, dword [0x1020cf44]
xor eax, dword [0x1020cf40]
cmp dword [eax + 0x18], 0xf
lea ecx, [eax + 4]
jbe 0x1006875f
mov ecx, dword [ecx]
push ebx
push esi
push dword [eax + 0x14]
push 0
push ecx
call sub.VCRUNTIME140.dll_memset
xorps xmm0, xmm0
mov dword [ebp - 0x24], 0
add esp, 0xc
mov dword [ebp - 0x20], 0xf
cmp byte [0x10315f18], 0
movups xmmword [ebp - 0x34], xmm0
mov byte [ebp - 0x34], 0
je 0x100687fa
cmp byte [0x10315f19], 0
jne 0x10068848
mov byte [0x10315f19], 1
xor esi, esi
nop word [eax + eax]
xor edx, edx
mov ebx, esi
xor edx, dword [0x10315f54]
xor ebx, dword [0x10315f50]
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 - 0x78], edx
mov eax, ebx
shrd eax, edx, 7
xor al, byte [esi + str.Nvl_]
xor al, bl
mov byte [esi + str.Nvl_], al
inc esi
cmp esi, 0x30
jb 0x100687b0
jmp 0x10068848
xor esi, esi
nop dword [eax]
xor edx, edx
mov ebx, esi
xor edx, dword [0x10315f54]
xor ebx, dword [0x10315f50]
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 - 0x78], edx
mov eax, ebx
shrd eax, edx, 7
xor al, byte [esi + str.Nvl_]
xor al, bl
mov byte [esi + str.Nvl_], al
inc esi
cmp esi, 0x30
jb 0x10068800
lea eax, [ebp - 0x69]
push eax
push 0x10315f49
push str.Nvl_
lea ecx, [ebp - 0x1c]
call fcn.10054040
cmp dword [ebp - 8], 0xf
lea eax, [ebp - 0x1c]
push dword [ebp - 0xc]
cmova eax, dword [ebp - 0x1c]
lea ecx, [ebp - 0x34]
push eax
call fcn.1004b140
mov ecx, dword [ebp - 8]
cmp ecx, 0xf
jbe 0x100688a9
mov edx, dword [ebp - 0x1c]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x1006889f
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x10068b1f
push ecx
push edx
call fcn.1015539a
add esp, 8
cmp dword [ebp - 0x20], 0xf
lea eax, [ebp - 0x34]
push 1
cmova eax, dword [ebp - 0x34]
lea ecx, [ebp - 0x134]
push 0x40
push 1
push eax
call fcn.10067490
mov eax, dword [ebp - 0x134]
mov eax, dword [eax + 4]
mov dword [ebp + eax - 0x134], 0x101c5bd0
mov eax, dword [ebp - 0x134]
mov ecx, dword [eax + 4]
lea eax, [ecx - 0x70]
mov dword [ebp + ecx - 0x138], eax
cmp dword [ebp - 0xd8], 0
je 0x10068ad0
mov eax, dword [ebp - 0x134]
lea ecx, [ebp - 0x134]
xorps xmm0, xmm0
mov dword [ebp - 0xc], 0
movups xmmword [ebp - 0x1c], xmm0
push 0xa
mov eax, dword [eax + 4]
add ecx, eax
mov dword [ebp - 8], 0xf
mov byte [ebp - 0x1c], 0
call dword [sym.imp.MSVCP140.dll_public:_char___thiscall_std::basic_ios_char__struct_std::char_traits_char__::widen_char_const]
push eax
lea eax, [ebp - 0x1c]
push eax
lea eax, [ebp - 0x134]
push eax
call fcn.10049010
add esp, 0xc
cmp dword [ebp - 0xc], 1
jbe 0x10068a79
lea eax, [ebp - 0x1c]
push eax
lea ecx, [ebp - 0x64]
call fcn.100492f0
lea eax, [ebp - 0x64]
push eax
lea eax, [ebp - 0x4c]
push eax
call fcn.10067780
mov esi, dword [0x1020cf3c]
lea eax, [ebp - 0x4c]
sub esi, dword [0x1020cf44]
add esp, 8
xor esi, dword [0x1020cf40]
add esi, 4
cmp esi, eax
je 0x10068a69
cmp dword [ebp - 0x38], 0xf
mov ecx, eax
mov ebx, dword [esi + 0x14]
cmova ecx, dword [ebp - 0x4c]
mov edi, dword [ebp - 0x3c]
mov dword [ebp - 0x78], ecx
cmp edi, ebx
ja 0x100689c6
mov dword [ebp - 0x68], esi
mov eax, esi
cmp ebx, 0xf
jbe 0x100689ac
mov eax, dword [esi]
mov dword [ebp - 0x68], eax
push edi
push ecx
push eax
mov dword [esi + 0x10], edi
call sub.VCRUNTIME140.dll_memmove
mov eax, dword [ebp - 0x68]
add esp, 0xc
mov byte [eax + edi], 0
jmp 0x10068a66
cmp edi, 0x7fffffff
ja 0x10068b40
mov ecx, edi
or ecx, 0xf
cmp ecx, 0x7fffffff
jbe 0x100689e6
mov ecx, 0x7fffffff
jmp 0x10068a04
mov edx, ebx
mov eax, 0x7fffffff
shr edx, 1
sub eax, edx
cmp ebx, eax
jbe 0x100689fc
mov ecx, 0x7fffffff
jmp 0x10068a04
lea eax, [ebx + edx]
cmp ecx, eax
cmovb ecx, eax
lea eax, [ebp - 0x68]
mov dword [ebp - 0x68], ecx
push eax
push esi
call fcn.10048150
mov ecx, dword [ebp - 0x68]
push edi
push dword [ebp - 0x78]
mov dword [ebp - 0x74], eax
push eax
mov dword [esi + 0x10], edi
mov dword [esi + 0x14], ecx
call sub.VCRUNTIME140.dll_memcpy
mov eax, dword [ebp - 0x74]
add esp, 0x14
mov byte [eax + edi], 0
cmp ebx, 0xf
jbe 0x10068a64
mov eax, dword [esi]
inc ebx
cmp ebx, 0x1000
jb 0x10068a57
mov ecx, dword [eax - 4]
add ebx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x10068b1f
mov eax, ecx
push ebx
push eax
call fcn.1015539a
mov eax, dword [ebp - 0x74]
add esp, 8
mov dword [esi], eax
mov edi, dword [ebp - 0x70]
lea ecx, [ebp - 0x4c]
call fcn.10049830
lea ecx, [ebp - 0x64]
call fcn.10049830
lea ecx, [ebp - 0x124]
call fcn.10067f70
test eax, eax
jne 0x10068aa0
push eax
mov eax, dword [ebp - 0x134]
lea ecx, [ebp - 0x134]
push 2
add ecx, dword [eax + 4]
call dword [sym.imp.MSVCP140.dll_public:_void___thiscall_std::basic_ios_char__struct_std::char_traits_char__::setstate_int__bool_]
mov ecx, dword [ebp - 8]
cmp ecx, 0xf
jbe 0x10068ad0
mov edx, dword [ebp - 0x1c]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x10068ac6
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x10068b1f
push ecx
push edx
call fcn.1015539a
add esp, 8
mov eax, dword [0x1020cf3c]
mov ecx, edi
sub eax, dword [0x1020cf44]
xor eax, dword [0x1020cf40]
add eax, 4
push eax
call fcn.100492f0
lea ecx, [ebp - 0x134]
call fcn.10067670
mov ecx, dword [ebp - 0x20]
pop esi
pop ebx
cmp ecx, 0xf
jbe 0x10068b2f
mov edx, dword [ebp - 0x34]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x10068b25
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
jbe 0x10068b25
call dword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
push ecx
push edx
call fcn.1015539a
add esp, 8
mov ecx, dword [ebp - 4]
mov eax, edi
xor ecx, ebp
pop edi
call fcn.101556c2
mov esp, ebp
pop ebp
ret
call fcn.1004ae90
int3