Function at 0x10001b49
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x100506d6
mov eax, dword fs:[0]
push eax
mov eax, 0x8908
call fcn.10050390
mov eax, dword [0x1005e040]
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 [0x1010b40c]
test eax, eax
je 0x100021c8
cmp dword [eax + 4], 3
je 0x10001bbd
call dword [sym.imp.MSVCP140.dll__Xtime_get_ticks]
cmp edx, dword [0x100d6e4c]
jl 0x100021c8
jg 0x10001bae
cmp eax, dword [0x100d6e48]
jb 0x100021c8
call fcn.10001a65
call fcn.1000316d
jmp 0x100021c8
lea ecx, [ebp - 0x8908]
call fcn.1000173a
xor ebx, ebx
jmp 0x100020b1
mov dword [ebp - 0x18], 0xd0e12
mov ecx, ebx
mov byte [ebp - 0x14], 1
mov al, cl
add al, 0x77
xor byte [ebp + ecx - 0x18], al
inc ecx
cmp ecx, 3
jb 0x10001bdc
push ebx
lea edx, [ebp - 0x18]
mov byte [ebp - 0x14], bl
lea ecx, [ebp - 0x8908]
call fcn.10001868
pop ecx
push ebx
lea ecx, [ebp - 0x40]
mov dword [ebp - 0x40], 0x19171719
mov esi, eax
mov word [ebp - 0x3c], 0x1e
mov byte [ebp - 0x3a], 1
call fcn.100021e2
mov edx, eax
lea ecx, [ebp - 0x8908]
call fcn.10001868
pop ecx
test eax, eax
je 0x10001d01
test esi, esi
je 0x1000208c
lea ecx, [ebp - 0x48]
mov dword [ebp - 0x48], 0x352b2a32
mov word [ebp - 0x44], 0x29
mov byte [ebp - 0x42], 1
call fcn.100021e2
mov cl, byte [esi]
cmp cl, byte [eax]
jne 0x10001c70
test cl, cl
je 0x10001c6c
mov cl, byte [esi + 1]
cmp cl, byte [eax + 1]
jne 0x10001c70
add esi, 2
add eax, 2
test cl, cl
jne 0x10001c50
mov eax, ebx
jmp 0x10001c75
sbb eax, eax
or eax, 1
test eax, eax
jne 0x1000208c
lea ecx, [ebp - 0x20]
mov dword [ebp - 0x20], 0x1b0d1913
mov word [ebp - 0x1c], 0x100
call fcn.10002203
mov edx, eax
lea ecx, [ebp - 0x8908]
call fcn.100017f9
push ecx
lea ecx, [ebp - 0x28]
mov dword [ebp - 0x28], 0x1f1d1714
mov esi, eax
mov word [ebp - 0x24], 0x100
call fcn.10002203
mov edx, eax
mov ecx, esi
call fcn.1000182e
lea ecx, [ebp - 0x6c]
mov dword [ebp - 0x6c], 0x90a1d1a
mov dword [ebp - 0x68], 0x181b1a
mov byte [ebp - 0x64], 1
mov dword [esp], 0x10053593
call fcn.10002224
mov edx, eax
mov ecx, esi
call fcn.10001868
pop ecx
mov edx, eax
mov ecx, 0x1010b410
call fcn.10002c7d
mov ecx, 0x100d6e44
jmp 0x10001e55
test esi, esi
je 0x1000208c
lea ecx, [ebp - 0x30]
mov dword [ebp - 0x30], 0x1b0d1913
mov word [ebp - 0x2c], 0x100
call fcn.10002203
mov edx, eax
lea ecx, [ebp - 0x8908]
call fcn.100017f9
lea ecx, [ebp - 0x88]
mov dword [ebp - 0x88], 0x332d3b36
mov edi, eax
mov dword [ebp - 0x84], 0x2729352d
mov dword [ebp - 0x80], 0xcbceca20
mov word [ebp - 0x7c], 0xcd
mov byte [ebp - 0x7a], 1
call fcn.10002245
mov ecx, esi
mov dl, byte [ecx]
cmp dl, byte [eax]
jne 0x10001d7f
test dl, dl
je 0x10001d7b
mov dl, byte [ecx + 1]
cmp dl, byte [eax + 1]
jne 0x10001d7f
add ecx, 2
add eax, 2
test dl, dl
jne 0x10001d5f
mov eax, ebx
jmp 0x10001d84
sbb eax, eax
or eax, 1
test eax, eax
jne 0x10001dc7
push ebx
lea ecx, [ebp - 0x50]
mov dword [ebp - 0x50], 0x81a1d04
mov dword [ebp - 0x4c], 0x100081e
call fcn.10002266
mov edx, eax
mov ecx, edi
call fcn.10001868
pop ecx
test eax, eax
je 0x1000208c
mov edx, eax
mov ecx, 0x101071f0
call fcn.10002c7d
mov ecx, 0x100d4a45
jmp 0x10001e55
movaps xmm0, xmmword [str.6__3_5_]
lea ecx, [ebp - 0xac]
movups xmmword [ebp - 0xac], xmm0
mov word [ebp - 0x9c], 0xc2
mov byte [ebp - 0x9a], 1
call fcn.10002287
mov ecx, esi
mov dl, byte [ecx]
cmp dl, byte [eax]
jne 0x10001e12
test dl, dl
je 0x10001e0e
mov dl, byte [ecx + 1]
cmp dl, byte [eax + 1]
jne 0x10001e12
add ecx, 2
add eax, 2
test dl, dl
jne 0x10001df2
mov eax, ebx
jmp 0x10001e17
sbb eax, eax
or eax, 1
test eax, eax
jne 0x10001e5e
push ebx
lea ecx, [ebp - 0x58]
mov dword [ebp - 0x58], 0x81a1d04
mov dword [ebp - 0x54], 0x100081e
call fcn.10002266
mov edx, eax
mov ecx, edi
call fcn.10001868
pop ecx
test eax, eax
je 0x1000208c
mov edx, eax
mov ecx, 0x1010b510
call fcn.10002c7d
mov ecx, 0x100d4a47
mov al, 1
xchg byte [ecx], al
jmp 0x1000208c
movaps xmm0, xmmword [0x1005a270]
lea ecx, [ebp - 0xb0]
movups xmmword [ebp - 0xb0], xmm0
mov dword [ebp - 0xa0], 0xd9ccddd6
mov word [ebp - 0x9c], 0xdf
mov byte [ebp - 0x9a], 1
call fcn.100022a8
mov cl, byte [esi]
cmp cl, byte [eax]
jne 0x10001eb1
test cl, cl
je 0x10001ead
mov cl, byte [esi + 1]
cmp cl, byte [eax + 1]
jne 0x10001eb1
add esi, 2
add eax, 2
test cl, cl
jne 0x10001e91
mov eax, ebx
jmp 0x10001eb6
sbb eax, eax
or eax, 1
test eax, eax
jne 0x1000208c
lea ecx, [ebp - 0x38]
mov dword [ebp - 0x38], 0x81c0b02
mov word [ebp - 0x34], 0x100
call fcn.10002203
mov edx, eax
mov ecx, edi
call fcn.100017f9
mov esi, eax
mov dword [ebp - 0x890c], 0x1001c1e
push ebx
lea ecx, [ebp - 0x890c]
mov dword [ebp - 0x8910], esi
call fcn.100022c9
mov edx, eax
mov ecx, esi
call fcn.10001868
pop ecx
push ebx
lea ecx, [ebp - 0x78]
mov dword [ebp - 0x78], 0x81c0b02
mov edi, eax
mov dword [ebp - 0x74], 0x1b101d15
mov word [ebp - 0x70], 0x100
call fcn.100022ea
mov edx, eax
mov ecx, esi
call fcn.10001868
pop ecx
push 0
lea ecx, [ebp - 0x60]
mov dword [ebp - 0x60], 0xe180e16
mov ebx, eax
mov dword [ebp - 0x5c], 0x1000e1a
call fcn.10002266
mov edx, eax
mov ecx, esi
call fcn.10001868
pop ecx
mov ecx, dword [0x100d6e10]
mov dword [ebp - 0x8914], eax
cmp ecx, 8
jb 0x10001f66
xor esi, esi
jmp 0x10001f81
xor eax, eax
inc eax
lock xadd dword [0x100d6e08], eax
inc eax
lea esi, [eax - 1]
and esi, 7
shl esi, 9
add esi, 0x100d5e08
test edi, edi
je 0x1000208a
test ebx, ebx
je 0x1000208a
test esi, esi
je 0x1000208a
cmp byte [edi], 0
mov ecx, esi
je 0x10001fb8
xor edx, edx
inc edx
sub edx, edi
lea eax, [edx + edi]
cmp eax, 0x20
jae 0x10001fb8
mov al, byte [edi]
mov byte [ecx], al
inc ecx
inc edi
cmp byte [edi], 0
jne 0x10001fa5
mov byte [ecx], 0
lea ecx, [esi + 0x20]
cmp byte [ebx], 0
je 0x10001fdd
xor edx, edx
inc edx
sub edx, ebx
lea eax, [edx + ebx]
cmp eax, 0x158
jae 0x10001fdd
mov al, byte [ebx]
mov byte [ecx], al
inc ecx
inc ebx
cmp byte [ebx], 0
jne 0x10001fc8
xor ebx, ebx
mov dword [ebp - 0x98], 0x190a1113
mov byte [ecx], bl
lea ecx, [ebp - 0x98]
push ebx
mov dword [ebp - 0x94], 0x17101509
mov dword [ebp - 0x90], 0xedf5e111
mov word [ebp - 0x8c], 0xf1
mov byte [ebp - 0x8a], 1
call fcn.10002245
mov ecx, dword [ebp - 0x8910]
mov edx, eax
call fcn.10001868
pop ecx
mov ecx, eax
test ecx, ecx
je 0x10002052
lea edx, [esi + 0x178]
cmp byte [ecx], bl
je 0x10002050
xor edi, edi
inc edi
sub edi, ecx
lea eax, [edi + ecx]
cmp eax, 8
jae 0x10002050
mov al, byte [ecx]
mov byte [edx], al
inc edx
inc ecx
cmp byte [ecx], bl
jne 0x1000203e
mov byte [edx], bl
mov ecx, dword [ebp - 0x8914]
add esi, 0x180
test ecx, ecx
je 0x1000207f
cmp byte [ecx], bl
je 0x1000207f
xor edx, edx
inc edx
sub edx, ecx
lea eax, [edx + ecx]
cmp eax, 0x80
jae 0x1000207f
mov al, byte [ecx]
mov byte [esi], al
inc esi
inc ecx
cmp byte [ecx], bl
jne 0x1000206b
mov byte [esi], bl
lock inc dword [0x100d6e10]
jmp 0x1000208c
xor ebx, ebx
or dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x8cc]
call fcn.10002a85
lea ecx, [ebp - 0x8908]
call fcn.10002ac5
lea ecx, [ebp - 0x8908]
call fcn.1000173a
lea eax, [ebp - 0x8908]
mov dword [ebp - 4], ebx
mov ecx, dword [0x1010b40c]
push eax
call fcn.100033c8
test al, al
jne 0x10001bcf
or dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x8cc]
call fcn.10002a85
lea ecx, [ebp - 0x8908]
call fcn.10002ac5
xor al, al
mov ecx, 0x100d4a46
xchg byte [ecx], al
test al, al
je 0x100021bf
cmp dword [0x10107408], 0
je 0x100021bf
mov ebx, 0x100d6e14
mov ecx, ebx
call fcn.1000199e
mov esi, dword [0x10107408]
mov dword [ebp - 0x40b4], esi
test esi, esi
je 0x1000213d
push esi
lea eax, [ebp - 0x40b0]
push 0x1010740c
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.1000336f
test al, al
jne 0x100021bf
mov ecx, ebx
call fcn.1000199e
mov eax, dword [ebp - 0x40b4]
mov dword [0x10107408], eax
test eax, eax
je 0x10002183
push eax
lea eax, [ebp - 0x40b0]
push eax
push 0x1010740c
call sub.VCRUNTIME140.dll_memcpy
add esp, 0xc
mov al, 1
mov ecx, 0x100d4a46
xchg byte [ecx], al
push ebx
call edi
pop ecx
jmp 0x100021bf
xor eax, eax
inc eax
lock xadd dword [0x100f6e74], eax
inc eax
dec eax
and eax, 7
imul eax, eax, 0x4004
add eax, 0x100d6e50
push dword [eax]
add eax, 4
push eax
call fcn.1000336f
lock dec dword [0x100f6e78]
mov eax, dword [0x100f6e78]
test eax, eax
jne 0x10002192
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.1004c416
leave
ret