Function at 0x1001518c
Capabilities:
Encode data using xor

Disassembly:
push 0x5c
mov eax, 0x1003ee97
call fcn.1003d7e1
mov esi, ecx
mov eax, dword [esi]
mov edi, dword [sym.imp.KERNEL32.dll_GetTickCount64]
mov dword [0x10057a20], eax
call edi
sub eax, dword [esi + 0x30]
mov ecx, eax
sbb edx, dword [esi + 0x34]
call fcn.1003d260
divss xmm0, dword [0x1004c754]
comiss xmm0, dword [0x1004c704]
jb 0x1001555d
call edi
xor ebx, ebx
mov dword [esi + 0x30], eax
push 0x3c
mov dword [esi + 0x34], edx
pop edi
cmp byte [esi + 0x20], bl
je 0x10015390
mov ecx, dword [esi + 0x24]
test ecx, ecx
jle 0x100151ee
dec ecx
mov dword [esi + 0x24], ecx
test ecx, ecx
js 0x10015385
mov eax, ecx
mov ebx, 0xe10
cdq
idiv ebx
mov eax, edx
cdq
idiv edi
mov ebx, eax
mov eax, ecx
cdq
idiv edi
xor eax, eax
lea edi, [ebp - 0x28]
stosd dword es:[edi], eax
stosd dword es:[edi], eax
stosd dword es:[edi], eax
stosd dword es:[edi], eax
xor eax, eax
mov dword [ebp - 0x18], eax
mov dword [ebp - 0x14], 0xf
mov byte [ebp - 0x28], al
mov dword [ebp - 4], eax
push edx
push ebx
cmp ebx, 0xa
jae 0x10015283
xor ebx, ebx
mov eax, ebx
cmp edx, 0xa
jae 0x1001525f
mov cl, 0x61
mov dword [ebp - 0x34], 0x5445161
mov dword [ebp - 0x30], 0x544515b
mov byte [ebp - 0x2c], bl
xor byte [ebp + eax - 0x33], cl
inc eax
cmp eax, 7
jae 0x10015257
mov cl, byte [ebp - 0x34]
jmp 0x10015248
mov byte [ebp - 0x2c], bl
jmp 0x100152df
mov cl, 0x13
mov dword [ebp - 0x34], 0x77362313
mov dword [ebp - 0x30], 0x773629
xor byte [ebp + eax - 0x33], cl
inc eax
cmp eax, 6
jae 0x1001527e
mov cl, byte [ebp - 0x34]
jmp 0x1001526f
mov byte [ebp - 0x2d], bl
jmp 0x100152df
xor ebx, ebx
cmp edx, 0xa
jae 0x100152b9
push 0x20
pop eax
mov cl, 5
mov byte [ebp - 0x33], al
mov byte [ebp - 0x2f], al
mov eax, ebx
mov byte [ebp - 0x34], cl
mov word [ebp - 0x32], 0x3f61
mov byte [ebp - 0x30], 0x35
mov word [ebp - 0x2e], 0x61
xor byte [ebp + eax - 0x33], cl
inc eax
cmp eax, 6
jae 0x1001527e
mov cl, byte [ebp - 0x34]
jmp 0x100152aa
mov cl, 0x3f
mov dword [ebp - 0x34], 0x55b1a3f
mov word [ebp - 0x30], 0x5b1a
mov eax, ebx
mov byte [ebp - 0x2e], bl
xor byte [ebp + eax - 0x33], cl
inc eax
cmp eax, 5
jae 0x100152dc
mov cl, byte [ebp - 0x34]
jmp 0x100152cd
mov byte [ebp - 0x2e], bl
sub esp, 0x18
lea eax, [ebp - 0x33]
mov ecx, esp
push eax
call fcn.10003d9a
lea eax, [ebp - 0x50]
push eax
call fcn.100039e3
add esp, 0x24
lea ecx, [ebp - 0x28]
push eax
call fcn.10008b15
lea ecx, [ebp - 0x50]
call fcn.10003b98
cmp dword [ebp - 0x14], 0xf
lea eax, [ebp - 0x28]
movaps xmm0, xmmword [0x1004d010]
mov ecx, ebx
cmova eax, dword [ebp - 0x28]
push eax
movups xmmword [ebp - 0x50], xmm0
mov dword [ebp - 0x40], 0x456b3d43
mov byte [ebp - 0x3c], bl
mov al, byte [ebp - 0x50]
xor byte [ebp + ecx - 0x4f], al
inc ecx
cmp ecx, 0x13
jb 0x1001532d
sub esp, 0x18
mov byte [ebp - 0x3c], bl
lea eax, [ebp - 0x4f]
mov ecx, esp
push eax
call fcn.10003d9a
lea eax, [ebp - 0x68]
push eax
call fcn.100039e3
add esp, 0x20
mov byte [ebp - 4], 1
mov edx, eax
mov ecx, dword [esi + 8]
call fcn.1000d186
lea ecx, [ebp - 0x68]
call fcn.10003b98
or dword [ebp - 4], 0xffffffff
mov edx, dword [ebp - 0x14]
cmp edx, 0xf
jbe 0x10015382
mov ecx, dword [ebp - 0x28]
inc edx
call fcn.10003b6b
push 0x3c
pop edi
cmp dword [esi + 0x24], ebx
jg 0x10015390
mov byte [esi + 0x20], bl
mov dword [esi + 0x24], ebx
cmp byte [esi + 0x21], 0
je 0x1001555d
movzx eax, word [esi + 0x28]
mov ecx, eax
test ax, ax
jle 0x100153ad
dec eax
mov word [esi + 0x28], ax
movzx ecx, ax
test cx, cx
js 0x1001554e
movsx ecx, cx
mov ebx, 0xe10
mov eax, ecx
cdq
idiv ebx
mov eax, edx
cdq
idiv edi
movzx ebx, ax
mov eax, ecx
cdq
idiv edi
xor eax, eax
lea edi, [ebp - 0x28]
stosd dword es:[edi], eax
movzx edx, dx
stosd dword es:[edi], eax
stosd dword es:[edi], eax
stosd dword es:[edi], eax
xor eax, eax
mov dword [ebp - 0x18], eax
mov dword [ebp - 0x14], 0xf
mov byte [ebp - 0x28], al
push 0xa
pop edi
mov dword [ebp - 4], 2
cmp bx, di
jae 0x10015430
cmp dx, di
jae 0x10015430
push edx
push ebx
push 0x3f
pop ecx
xor ebx, ebx
mov byte [ebp - 0x34], cl
mov dword [ebp - 0x33], 0x55b1a0f
mov eax, ebx
mov dword [ebp - 0x2f], 0x5b1a0f
xor byte [ebp + eax - 0x33], cl
inc eax
cmp eax, 7
jae 0x10015428
mov cl, byte [ebp - 0x34]
jmp 0x10015419
mov byte [ebp - 0x2c], bl
jmp 0x100154b5
mov eax, edx
mov ecx, ebx
push eax
push ecx
cmp bx, di
jae 0x10015463
xor ebx, ebx
mov dword [ebp - 0x34], 0x4455060
mov cl, 0x60
mov dword [ebp - 0x30], 0x4455a
mov eax, ebx
xor byte [ebp + eax - 0x33], cl
inc eax
cmp eax, 6
jae 0x1001545e
mov cl, byte [ebp - 0x34]
jmp 0x1001544f
mov byte [ebp - 0x2d], bl
jmp 0x100154b5
xor ebx, ebx
mov eax, ebx
cmp dx, di
jae 0x10015491
push 0x20
pop ecx
mov byte [ebp - 0x34], cl
mov dword [ebp - 0x33], 0x101a4405
mov word [ebp - 0x2f], 0x4405
mov byte [ebp - 0x2d], bl
xor byte [ebp + eax - 0x33], cl
inc eax
cmp eax, 6
jae 0x1001545e
mov cl, byte [ebp - 0x34]
jmp 0x10015482
mov cl, 0x2a
mov dword [ebp - 0x34], 0x104e0f2a
mov word [ebp - 0x30], 0x4e0f
mov byte [ebp - 0x2e], bl
xor byte [ebp + eax - 0x33], cl
inc eax
cmp eax, 5
jae 0x100154b2
mov cl, byte [ebp - 0x34]
jmp 0x100154a3
mov byte [ebp - 0x2e], bl
sub esp, 0x18
lea eax, [ebp - 0x33]
mov ecx, esp
push eax
call fcn.10003d9a
lea eax, [ebp - 0x68]
push eax
call fcn.100039e3
add esp, 0x24
lea ecx, [ebp - 0x28]
push eax
call fcn.10008b15
lea ecx, [ebp - 0x68]
call fcn.10003b98
cmp dword [ebp - 0x14], 0xf
lea eax, [ebp - 0x28]
movaps xmm0, xmmword [0x1004d740]
mov ecx, ebx
cmova eax, dword [ebp - 0x28]
push eax
movups xmmword [ebp - 0x50], xmm0
mov dword [ebp - 0x40], 0x3b6d1368
mov word [ebp - 0x3c], 0x15
mov al, byte [ebp - 0x50]
xor byte [ebp + ecx - 0x4f], al
inc ecx
cmp ecx, 0x14
jb 0x10015506
sub esp, 0x18
mov byte [ebp - 0x3b], bl
lea eax, [ebp - 0x4f]
mov ecx, esp
push eax
call fcn.10003d9a
lea eax, [ebp - 0x68]
push eax
call fcn.100039e3
add esp, 0x20
mov byte [ebp - 4], 3
mov edx, eax
mov ecx, dword [esi + 0xc]
call fcn.1000d186
lea ecx, [ebp - 0x68]
call fcn.10003b98
lea ecx, [ebp - 0x28]
call fcn.10003b98
cmp word [esi + 0x28], bx
jg 0x1001555d
xor eax, eax
mov byte [esi + 0x21], bl
mov word [esi + 0x28], ax
call fcn.1003d79f
ret