Function at 0x100200e7
Capabilities:
Encode data using xor

Disassembly:
push 0x5c
mov eax, 0x10077607
call fcn.1004605f
mov esi, ecx
mov eax, dword [esi]
mov edi, dword [sym.imp.KERNEL32.dll_GetTickCount64]
mov dword [0x1009e8dc], eax
call edi
sub eax, dword [esi + 0x30]
mov ecx, eax
sbb edx, dword [esi + 0x34]
call fcn.10075640
cvtsd2ss xmm0, xmm0
divss xmm0, dword [0x1008e1b0]
comiss xmm0, dword [0x1008e170]
jb 0x100204bc
call edi
mov dword [esi + 0x30], eax
xor ecx, ecx
mov al, byte [esi + 0x20]
mov dword [esi + 0x34], edx
push 0x11
pop ebx
test al, al
je 0x100202f5
mov eax, dword [esi + 0x24]
test eax, eax
jle 0x1002014d
dec eax
mov dword [esi + 0x24], eax
mov edi, dword [esi + 0x24]
test edi, edi
js 0x100202e9
mov eax, edi
mov dword [ebp - 0x14], 0xf
cdq
mov ecx, 0xe10
idiv ecx
push 0x3c
mov eax, edx
cdq
pop ecx
idiv ecx
push 0x3c
mov ecx, eax
mov eax, edi
cdq
pop edi
idiv edi
xor eax, eax
mov dword [ebp - 0x18], eax
mov byte [ebp - 0x28], al
push 0xa
pop edi
mov dword [ebp - 4], eax
push edx
push ecx
cmp ecx, edi
jae 0x100201ee
cmp edx, edi
jae 0x100201be
mov cl, 0x5a
mov dword [ebp - 0x34], 0x3e7f6a5a
mov dword [ebp - 0x30], 0x3e7f6a60
mov byte [ebp - 0x2c], al
xor byte [ebp + eax - 0x33], cl
inc eax
cmp eax, 7
jae 0x100201b5
mov cl, byte [ebp - 0x34]
jmp 0x100201a6
mov byte [ebp - 0x2c], 0
jmp 0x1002023f
mov cl, 0x75
mov word [ebp - 0x34], 0x4575
mov byte [ebp - 0x32], 0x50
mov byte [ebp - 0x31], bl
mov word [ebp - 0x30], 0x504f
mov byte [ebp - 0x2e], bl
mov byte [ebp - 0x2d], al
xor byte [ebp + eax - 0x33], cl
inc eax
cmp eax, 6
jae 0x100201e8
mov cl, byte [ebp - 0x34]
jmp 0x100201d9
mov byte [ebp - 0x2d], 0
jmp 0x1002023f
cmp edx, edi
jae 0x1002021a
push 0xa
pop edx
mov cl, 0x30
mov word [ebp - 0x34], 0x1530
mov byte [ebp - 0x32], 0x54
mov byte [ebp - 0x31], dl
mov dword [ebp - 0x30], 0x541500
xor byte [ebp + eax - 0x33], cl
inc eax
cmp eax, 6
jae 0x100201e8
mov cl, byte [ebp - 0x34]
jmp 0x1002020b
mov cl, 0x7d
mov dword [ebp - 0x34], 0x4719587d
mov word [ebp - 0x30], 0x1958
mov byte [ebp - 0x2e], al
xor byte [ebp + eax - 0x33], cl
inc eax
cmp eax, 5
jae 0x1002023b
mov cl, byte [ebp - 0x34]
jmp 0x1002022c
mov byte [ebp - 0x2e], 0
sub esp, 0x18
lea eax, [ebp - 0x33]
mov ecx, esp
push eax
call fcn.10001f6a
lea eax, [ebp - 0x50]
push eax
call fcn.10007414
add esp, 0x24
lea ecx, [ebp - 0x28]
push eax
call fcn.10003ac6
push 0
push 1
lea ecx, [ebp - 0x50]
call fcn.10001e1f
cmp dword [ebp - 0x14], 0x10
lea eax, [ebp - 0x28]
movaps xmm0, xmmword [0x1008ec10]
cmovae eax, dword [ebp - 0x28]
xor ecx, ecx
push eax
movups xmmword [ebp - 0x50], xmm0
mov dword [ebp - 0x40], 0x4d63354b
mov byte [ebp - 0x3c], 0
mov al, byte [ebp - 0x50]
xor byte [ebp + ecx - 0x4f], al
inc ecx
cmp ecx, 0x13
jb 0x10020292
sub esp, 0x18
mov byte [ebp - 0x3c], 0
lea eax, [ebp - 0x4f]
mov ecx, esp
push eax
call fcn.10001f6a
lea eax, [ebp - 0x68]
push eax
call fcn.10007414
add esp, 0x20
mov byte [ebp - 4], 1
mov edx, eax
mov ecx, dword [esi + 8]
call fcn.10010c45
push 0
push 1
lea ecx, [ebp - 0x68]
call fcn.10001e1f
or dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x28]
push 0
push 1
call fcn.10001e1f
xor ecx, ecx
cmp dword [esi + 0x24], 0
jg 0x100202f5
mov byte [esi + 0x20], cl
mov dword [esi + 0x24], ecx
mov al, byte [esi + 0x21]
test al, al
je 0x100204bc
movzx eax, word [esi + 0x28]
test ax, ax
jle 0x1002030e
dec eax
mov word [esi + 0x28], ax
movzx edi, word [esi + 0x28]
mov eax, edi
test ax, ax
js 0x100204ab
cwde
mov ecx, 0xe10
cdq
idiv ecx
push 0x3c
mov eax, edx
mov dword [ebp - 0x14], 0xf
cdq
pop ecx
idiv ecx
push 0x3c
movzx ecx, ax
mov eax, edi
cwde
cdq
pop edi
idiv edi
movzx eax, dx
xor edx, edx
mov dword [ebp - 0x18], edx
mov byte [ebp - 0x28], dl
push 0xa
pop edi
mov dword [ebp - 4], 2
cmp cx, di
jae 0x100203bb
push edi
pop ebx
push eax
cmp ax, bx
mov eax, edx
push ecx
jae 0x10020397
mov cl, 0x3a
mov byte [ebp - 0x33], bl
mov byte [ebp - 0x34], cl
mov word [ebp - 0x32], 0x5e1f
mov byte [ebp - 0x30], dl
mov byte [ebp - 0x2f], bl
mov word [ebp - 0x2e], 0x5e1f
mov byte [ebp - 0x2c], dl
xor byte [ebp + eax - 0x33], cl
inc eax
cmp eax, 7
jae 0x10020392
mov cl, byte [ebp - 0x34]
jmp 0x10020383
mov byte [ebp - 0x2c], dl
jmp 0x10020405
mov cl, 0x14
mov dword [ebp - 0x34], 0x70312414
mov dword [ebp - 0x30], 0x70312e
xor byte [ebp + eax - 0x33], cl
inc eax
cmp eax, 6
jae 0x100203b6
mov cl, byte [ebp - 0x34]
jmp 0x100203a7
mov byte [ebp - 0x2d], dl
jmp 0x10020405
push eax
cmp ax, di
mov eax, edx
push ecx
jae 0x100203e3
mov cl, 4
mov dword [ebp - 0x34], 0x3e602104
mov dword [ebp - 0x30], 0x602134
xor byte [ebp + eax - 0x33], cl
inc eax
cmp eax, 6
jae 0x100203b6
mov cl, byte [ebp - 0x34]
jmp 0x100203d4
mov byte [ebp - 0x34], bl
mov dword [ebp - 0x33], 0x342b7534
mov word [ebp - 0x2f], 0x75
xor byte [ebp + eax - 0x33], bl
inc eax
cmp eax, 5
jae 0x10020402
mov bl, byte [ebp - 0x34]
jmp 0x100203f3
mov byte [ebp - 0x2e], dl
sub esp, 0x18
lea eax, [ebp - 0x33]
mov ecx, esp
push eax
call fcn.10001f6a
lea eax, [ebp - 0x68]
push eax
call fcn.10007414
add esp, 0x24
lea ecx, [ebp - 0x28]
push eax
call fcn.10003ac6
xor ebx, ebx
lea ecx, [ebp - 0x68]
push ebx
push 1
call fcn.10001e1f
cmp dword [ebp - 0x14], 0x10
lea eax, [ebp - 0x28]
movaps xmm0, xmmword [0x1008f080]
mov ecx, ebx
cmovae eax, dword [ebp - 0x28]
push eax
movups xmmword [ebp - 0x50], xmm0
mov dword [ebp - 0x40], 0x1d4b354e
mov word [ebp - 0x3c], 0x33
mov al, byte [ebp - 0x50]
xor byte [ebp + ecx - 0x4f], al
inc ecx
cmp ecx, 0x14
jb 0x1002045b
sub esp, 0x18
mov byte [ebp - 0x3b], bl
lea eax, [ebp - 0x4f]
mov ecx, esp
push eax
call fcn.10001f6a
lea eax, [ebp - 0x68]
push eax
call fcn.10007414
add esp, 0x20
mov byte [ebp - 4], 3
mov edx, eax
mov ecx, dword [esi + 0xc]
call fcn.10010c45
push ebx
push 1
lea ecx, [ebp - 0x68]
call fcn.10001e1f
push ebx
push 1
lea ecx, [ebp - 0x28]
call fcn.10001e1f
jmp 0x100204ad
xor ebx, ebx
cmp word [esi + 0x28], bx
jg 0x100204bc
xor eax, eax
mov byte [esi + 0x21], bl
mov word [esi + 0x28], ax
call fcn.10046009
ret