Function at 0x10001a6e
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x10051426
mov eax, dword fs:[0]
push eax
mov eax, 0x8908
call fcn.100510e0
mov eax, dword [0x1005f040]
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 eax, dword [0x1010c538]
test eax, eax
je 0x100020ed
cmp dword [eax + 4], 3
je 0x10001ae2
call dword [sym.imp.MSVCP140.dll__Xtime_get_ticks]
cmp edx, dword [0x100d7e74]
jl 0x100020ed
jg 0x10001ad3
cmp eax, dword [0x100d7e70]
jb 0x100020ed
call fcn.1000198a
call fcn.10002fe6
jmp 0x100020ed
lea ecx, [ebp - 0x8908]
call fcn.1000174a
xor ebx, ebx
jmp 0x10001fd6
mov dword [ebp - 0x18], 0xd7d4c4
mov ecx, ebx
mov byte [ebp - 0x14], 1
mov al, cl
sub al, 0x5f
xor byte [ebp + ecx - 0x18], al
inc ecx
cmp ecx, 3
jb 0x10001b01
push ebx
lea edx, [ebp - 0x18]
mov byte [ebp - 0x14], bl
lea ecx, [ebp - 0x8908]
call fcn.10001878
pop ecx
push ebx
lea ecx, [ebp - 0x40]
mov dword [ebp - 0x40], 0xc7cdcdcf
mov esi, eax
mov word [ebp - 0x3c], 0xc0
mov byte [ebp - 0x3a], 1
call fcn.10002107
mov edx, eax
lea ecx, [ebp - 0x8908]
call fcn.10001878
pop ecx
test eax, eax
je 0x10001c26
test esi, esi
je 0x10001fb1
lea ecx, [ebp - 0x48]
mov dword [ebp - 0x48], 0xebf1f0e4
mov word [ebp - 0x44], 0xf7
mov byte [ebp - 0x42], 1
call fcn.10002107
mov cl, byte [esi]
cmp cl, byte [eax]
jne 0x10001b95
test cl, cl
je 0x10001b91
mov cl, byte [esi + 1]
cmp cl, byte [eax + 1]
jne 0x10001b95
add esi, 2
add eax, 2
test cl, cl
jne 0x10001b75
mov eax, ebx
jmp 0x10001b9a
sbb eax, eax
or eax, 1
test eax, eax
jne 0x10001fb1
lea ecx, [ebp - 0x20]
mov dword [ebp - 0x20], 0xc5d7c3c5
mov word [ebp - 0x1c], 0x100
call fcn.10002128
mov edx, eax
lea ecx, [ebp - 0x8908]
call fcn.10001809
push ecx
lea ecx, [ebp - 0x28]
mov dword [ebp - 0x28], 0xc1c7cdc2
mov esi, eax
mov word [ebp - 0x24], 0x100
call fcn.10002128
mov edx, eax
mov ecx, esi
call fcn.1000183e
lea ecx, [ebp - 0x6c]
mov dword [ebp - 0x6c], 0xd7d0c7cc
mov dword [ebp - 0x68], 0xc2c1c4
mov byte [ebp - 0x64], 1
mov dword [esp], 0x10053593
call fcn.10002149
mov edx, eax
mov ecx, esi
call fcn.10001878
pop ecx
mov edx, eax
mov ecx, 0x1010c438
call fcn.10002b0a
mov ecx, 0x100f7ea4
jmp 0x10001d7a
test esi, esi
je 0x10001fb1
lea ecx, [ebp - 0x30]
mov dword [ebp - 0x30], 0xc5d7c3c5
mov word [ebp - 0x2c], 0x100
call fcn.10002128
mov edx, eax
lea ecx, [ebp - 0x8908]
call fcn.10001809
lea ecx, [ebp - 0x88]
mov dword [ebp - 0x88], 0xedf7e1e0
mov edi, eax
mov dword [ebp - 0x84], 0xf1f3eff3
mov dword [ebp - 0x80], 0xe5e4e0f6
mov word [ebp - 0x7c], 0xe3
mov byte [ebp - 0x7a], 1
call fcn.1000216a
mov ecx, esi
mov dl, byte [ecx]
cmp dl, byte [eax]
jne 0x10001ca4
test dl, dl
je 0x10001ca0
mov dl, byte [ecx + 1]
cmp dl, byte [eax + 1]
jne 0x10001ca4
add ecx, 2
add eax, 2
test dl, dl
jne 0x10001c84
mov eax, ebx
jmp 0x10001ca9
sbb eax, eax
or eax, 1
test eax, eax
jne 0x10001cec
push ebx
lea ecx, [ebp - 0x50]
mov dword [ebp - 0x50], 0xd6c0c7d2
mov dword [ebp - 0x4c], 0x100d2c0
call fcn.1000218b
mov edx, eax
mov ecx, edi
call fcn.10001878
pop ecx
test eax, eax
je 0x10001fb1
mov edx, eax
mov ecx, 0x10108218
call fcn.10002b0a
mov ecx, 0x100d7e6d
jmp 0x10001d7a
movaps xmm0, xmmword [0x1005ae30]
lea ecx, [ebp - 0xac]
movups xmmword [ebp - 0xac], xmm0
mov word [ebp - 0x9c], 0xf4
mov byte [ebp - 0x9a], 1
call fcn.100021ac
mov ecx, esi
mov dl, byte [ecx]
cmp dl, byte [eax]
jne 0x10001d37
test dl, dl
je 0x10001d33
mov dl, byte [ecx + 1]
cmp dl, byte [eax + 1]
jne 0x10001d37
add ecx, 2
add eax, 2
test dl, dl
jne 0x10001d17
mov eax, ebx
jmp 0x10001d3c
sbb eax, eax
or eax, 1
test eax, eax
jne 0x10001d83
push ebx
lea ecx, [ebp - 0x58]
mov dword [ebp - 0x58], 0xd6c0c7d2
mov dword [ebp - 0x54], 0x100d2c0
call fcn.1000218b
mov edx, eax
mov ecx, edi
call fcn.10001878
pop ecx
test eax, eax
je 0x10001fb1
mov edx, eax
mov ecx, 0x1010c540
call fcn.10002b0a
mov ecx, 0x100d7e6f
mov al, 1
xchg byte [ecx], al
jmp 0x10001fb1
movaps xmm0, xmmword [0x1005afa0]
lea ecx, [ebp - 0xb0]
movups xmmword [ebp - 0xb0], xmm0
mov dword [ebp - 0xa0], 0xe7f6e7e0
mov word [ebp - 0x9c], 0xe1
mov byte [ebp - 0x9a], 1
call fcn.100021cd
mov cl, byte [esi]
cmp cl, byte [eax]
jne 0x10001dd6
test cl, cl
je 0x10001dd2
mov cl, byte [esi + 1]
cmp cl, byte [eax + 1]
jne 0x10001dd6
add esi, 2
add eax, 2
test cl, cl
jne 0x10001db6
mov eax, ebx
jmp 0x10001ddb
sbb eax, eax
or eax, 1
test eax, eax
jne 0x10001fb1
lea ecx, [ebp - 0x38]
mov dword [ebp - 0x38], 0xd6c6d1d4
mov word [ebp - 0x34], 0x100
call fcn.10002128
mov edx, eax
mov ecx, edi
call fcn.10001809
mov esi, eax
mov dword [ebp - 0x890c], 0x100c6c8
push ebx
lea ecx, [ebp - 0x890c]
mov dword [ebp - 0x8910], esi
call fcn.100021ee
mov edx, eax
mov ecx, esi
call fcn.10001878
pop ecx
push ebx
lea ecx, [ebp - 0x78]
mov dword [ebp - 0x78], 0xd6c6d1d4
mov edi, eax
mov dword [ebp - 0x74], 0xcdcac7cb
mov word [ebp - 0x70], 0x100
call fcn.1000220f
mov edx, eax
mov ecx, esi
call fcn.10001878
pop ecx
push 0
lea ecx, [ebp - 0x60]
mov dword [ebp - 0x60], 0xd0c2d4c0
mov ebx, eax
mov dword [ebp - 0x5c], 0x100d4c4
call fcn.1000218b
mov edx, eax
mov ecx, esi
call fcn.10001878
pop ecx
mov ecx, dword [0x100d7e38]
mov dword [ebp - 0x8914], eax
cmp ecx, 8
jb 0x10001e8b
xor esi, esi
jmp 0x10001ea6
xor eax, eax
inc eax
lock xadd dword [0x100d7e30], eax
inc eax
lea esi, [eax - 1]
and esi, 7
shl esi, 9
add esi, 0x100d6e30
test edi, edi
je 0x10001faf
test ebx, ebx
je 0x10001faf
test esi, esi
je 0x10001faf
cmp byte [edi], 0
mov ecx, esi
je 0x10001edd
xor edx, edx
inc edx
sub edx, edi
lea eax, [edx + edi]
cmp eax, 0x20
jae 0x10001edd
mov al, byte [edi]
mov byte [ecx], al
inc ecx
inc edi
cmp byte [edi], 0
jne 0x10001eca
mov byte [ecx], 0
lea ecx, [esi + 0x20]
cmp byte [ebx], 0
je 0x10001f02
xor edx, edx
inc edx
sub edx, ebx
lea eax, [edx + ebx]
cmp eax, 0x158
jae 0x10001f02
mov al, byte [ebx]
mov byte [ecx], al
inc ecx
inc ebx
cmp byte [ebx], 0
jne 0x10001eed
xor ebx, ebx
mov dword [ebp - 0x98], 0xc7d0cbc5
mov byte [ecx], bl
lea ecx, [ebp - 0x98]
push ebx
mov dword [ebp - 0x94], 0xc1cacfd7
mov dword [ebp - 0x90], 0xc3dfcbc7
mov word [ebp - 0x8c], 0xdf
mov byte [ebp - 0x8a], 1
call fcn.1000216a
mov ecx, dword [ebp - 0x8910]
mov edx, eax
call fcn.10001878
pop ecx
mov ecx, eax
test ecx, ecx
je 0x10001f77
lea edx, [esi + 0x178]
cmp byte [ecx], bl
je 0x10001f75
xor edi, edi
inc edi
sub edi, ecx
lea eax, [edi + ecx]
cmp eax, 8
jae 0x10001f75
mov al, byte [ecx]
mov byte [edx], al
inc edx
inc ecx
cmp byte [ecx], bl
jne 0x10001f63
mov byte [edx], bl
mov edx, dword [ebp - 0x8914]
add esi, 0x180
test edx, edx
je 0x10001fa4
cmp byte [edx], bl
je 0x10001fa4
xor ecx, ecx
inc ecx
sub ecx, edx
lea eax, [ecx + edx]
cmp eax, 0x80
jae 0x10001fa4
mov al, byte [edx]
mov byte [esi], al
inc esi
inc edx
cmp byte [edx], bl
jne 0x10001f90
mov byte [esi], bl
lock inc dword [0x100d7e38]
jmp 0x10001fb1
xor ebx, ebx
or dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x8cc]
call fcn.100029aa
lea ecx, [ebp - 0x8908]
call fcn.100029ea
lea ecx, [ebp - 0x8908]
call fcn.1000174a
lea eax, [ebp - 0x8908]
mov dword [ebp - 4], ebx
mov ecx, dword [0x1010c538]
push eax
call fcn.10003241
test al, al
jne 0x10001af4
or dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x8cc]
call fcn.100029aa
lea ecx, [ebp - 0x8908]
call fcn.100029ea
xor al, al
mov ecx, 0x100d7e6e
xchg byte [ecx], al
test al, al
je 0x100020e4
cmp dword [0x10108430], 0
je 0x100020e4
mov ebx, 0x100d7e3c
mov ecx, ebx
call fcn.100018c3
mov esi, dword [0x10108430]
mov dword [ebp - 0x40b4], esi
test esi, esi
je 0x10002062
push esi
lea eax, [ebp - 0x40b0]
push 0x10108434
push eax
call sub.VCRUNTIME140.dll_memcpy
mov esi, dword [ebp - 0x40b4]
add esp, 0xc
mov edi, dword [sym.imp.MSVCP140.dll__Mtx_unlock]
push ebx
call edi
pop ecx
push esi
lea eax, [ebp - 0x40b0]
push eax
call fcn.100031e8
test al, al
jne 0x100020e4
mov ecx, ebx
call fcn.100018c3
mov eax, dword [ebp - 0x40b4]
mov dword [0x10108430], eax
test eax, eax
je 0x100020a8
push eax
lea eax, [ebp - 0x40b0]
push eax
push 0x10108434
call sub.VCRUNTIME140.dll_memcpy
add esp, 0xc
mov al, 1
mov ecx, 0x100d7e6e
xchg byte [ecx], al
push ebx
call edi
pop ecx
jmp 0x100020e4
xor eax, eax
inc eax
lock xadd dword [0x100f7e9c], eax
inc eax
dec eax
and eax, 7
imul eax, eax, 0x4004
add eax, 0x100d7e78
push dword [eax]
add eax, 4
push eax
call fcn.100031e8
lock dec dword [0x100f7ea0]
mov eax, dword [0x100f7ea0]
test eax, eax
jne 0x100020b7
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.1004d254
leave
ret