Function at 0x100150b1
Capabilities:
Encode data using xor

Disassembly:
push 0x5c
mov eax, 0x1003eaca
call fcn.1003d3d1
mov esi, ecx
mov eax, dword [esi]
mov edi, dword [sym.imp.KERNEL32.dll_GetTickCount64]
mov dword [0x10056a00], eax
call edi
sub eax, dword [esi + 0x30]
mov ecx, eax
sbb edx, dword [esi + 0x34]
call fcn.1003ce50
divss xmm0, dword [0x1004b77c]
comiss xmm0, dword [0x1004b72c]
jb 0x10015483
call edi
xor ebx, ebx
mov dword [esi + 0x30], eax
mov edi, 0xe10
mov dword [esi + 0x34], edx
cmp byte [esi + 0x20], bl
je 0x100152b3
mov ecx, dword [esi + 0x24]
test ecx, ecx
jle 0x10015115
dec ecx
mov dword [esi + 0x24], ecx
test ecx, ecx
js 0x100152a8
mov eax, ecx
cdq
idiv edi
push 0x3c
mov eax, edx
cdq
pop edi
idiv edi
push edi
mov ebx, eax
lea edi, [ebp - 0x28]
mov eax, ecx
cdq
pop ecx
idiv ecx
xor eax, eax
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 0x100151b4
xor ebx, ebx
cmp edx, 0xa
jae 0x10015183
mov cl, 0x1c
mov dword [ebp - 0x34], 0x78392c1c
mov dword [ebp - 0x30], 0x78392c26
mov eax, ebx
mov byte [ebp - 0x2c], bl
xor byte [ebp + eax - 0x33], cl
inc eax
cmp eax, 7
jae 0x1001517e
mov cl, byte [ebp - 0x34]
jmp 0x1001516f
mov byte [ebp - 0x2c], bl
jmp 0x10015200
push 0x58
pop eax
mov byte [ebp - 0x31], al
mov byte [ebp - 0x2e], al
mov eax, ebx
mov byte [ebp - 0x34], cl
mov word [ebp - 0x33], 0x190c
mov word [ebp - 0x30], 0x1906
mov byte [ebp - 0x2d], bl
xor byte [ebp + eax - 0x33], cl
inc eax
cmp eax, 6
jae 0x100151af
mov cl, byte [ebp - 0x34]
jmp 0x100151a0
mov byte [ebp - 0x2d], bl
jmp 0x10015200
xor ebx, ebx
mov eax, ebx
cmp edx, 0xa
jae 0x100151dc
mov cl, 0x42
mov dword [ebp - 0x34], 0x78266742
mov dword [ebp - 0x30], 0x266772
xor byte [ebp + eax - 0x33], cl
inc eax
cmp eax, 6
jae 0x100151af
mov cl, byte [ebp - 0x34]
jmp 0x100151cd
mov cl, 0x56
mov dword [ebp - 0x34], 0x6c327356
mov word [ebp - 0x30], 0x3273
mov byte [ebp - 0x2e], bl
xor byte [ebp + eax - 0x33], cl
inc eax
cmp eax, 5
jae 0x100151fd
mov cl, byte [ebp - 0x34]
jmp 0x100151ee
mov byte [ebp - 0x2e], bl
sub esp, 0x18
lea eax, [ebp - 0x33]
mov ecx, esp
push eax
call fcn.10003da0
lea eax, [ebp - 0x50]
push eax
call fcn.100039e5
add esp, 0x24
lea ecx, [ebp - 0x28]
push eax
call fcn.10008af4
lea ecx, [ebp - 0x50]
call fcn.10003b9e
cmp dword [ebp - 0x14], 0xf
lea eax, [ebp - 0x28]
movaps xmm0, xmmword [0x1004c720]
mov ecx, ebx
cmova eax, dword [ebp - 0x28]
push eax
movups xmmword [ebp - 0x50], xmm0
mov dword [ebp - 0x40], 0x153b6d13
mov byte [ebp - 0x3c], bl
mov al, byte [ebp - 0x50]
xor byte [ebp + ecx - 0x4f], al
inc ecx
cmp ecx, 0x13
jb 0x1001524e
sub esp, 0x18
mov byte [ebp - 0x3c], bl
lea eax, [ebp - 0x4f]
mov ecx, esp
push eax
call fcn.10003da0
lea eax, [ebp - 0x68]
push eax
call fcn.100039e5
add esp, 0x20
mov byte [ebp - 4], 1
mov edx, eax
mov ecx, dword [esi + 8]
call fcn.1000d0e0
lea ecx, [ebp - 0x68]
call fcn.10003b9e
or dword [ebp - 4], 0xffffffff
mov edx, dword [ebp - 0x14]
cmp edx, 0xf
jbe 0x100152a3
mov ecx, dword [ebp - 0x28]
inc edx
call fcn.10003b71
mov edi, 0xe10
cmp dword [esi + 0x24], ebx
jg 0x100152b3
mov byte [esi + 0x20], bl
mov dword [esi + 0x24], ebx
cmp byte [esi + 0x21], 0
je 0x10015483
movzx eax, word [esi + 0x28]
mov ecx, eax
test ax, ax
jle 0x100152d0
dec eax
mov word [esi + 0x28], ax
movzx ecx, ax
test cx, cx
js 0x10015474
movsx ecx, cx
mov eax, ecx
cdq
idiv edi
push 0x3c
mov eax, edx
cdq
pop edi
idiv edi
movzx ebx, ax
mov eax, ecx
cdq
idiv edi
xor eax, eax
lea edi, [ebp - 0x28]
stosd dword es:[edi], eax
movzx ecx, 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 0x1001535c
cmp cx, di
jae 0x1001535c
push ecx
push ebx
push 0x58
pop ecx
push 0x3c
pop eax
xor ebx, ebx
mov byte [ebp - 0x31], al
mov byte [ebp - 0x2d], al
mov eax, ebx
mov byte [ebp - 0x34], cl
mov word [ebp - 0x33], 0x7d68
mov word [ebp - 0x30], 0x6862
mov byte [ebp - 0x2e], 0x7d
mov byte [ebp - 0x2c], bl
xor byte [ebp + eax - 0x33], cl
inc eax
cmp eax, 7
jae 0x10015357
mov cl, byte [ebp - 0x34]
jmp 0x10015348
mov byte [ebp - 0x2c], bl
jmp 0x100153db
mov eax, ecx
mov edx, ebx
push eax
push edx
cmp bx, di
jae 0x1001538f
xor ebx, ebx
mov dword [ebp - 0x34], 0x4f0e1b2b
mov cl, 0x2b
mov dword [ebp - 0x30], 0x4f0e11
mov eax, ebx
xor byte [ebp + eax - 0x33], cl
inc eax
cmp eax, 6
jae 0x1001538a
mov cl, byte [ebp - 0x34]
jmp 0x1001537b
mov byte [ebp - 0x2d], bl
jmp 0x100153db
xor ebx, ebx
mov eax, ebx
cmp cx, di
jae 0x100153b7
mov cl, 0x76
mov dword [ebp - 0x34], 0x4c125376
mov dword [ebp - 0x30], 0x125346
xor byte [ebp + eax - 0x33], cl
inc eax
cmp eax, 6
jae 0x1001538a
mov cl, byte [ebp - 0x34]
jmp 0x100153a8
mov cl, 0x1f
mov dword [ebp - 0x34], 0x257b3a1f
mov word [ebp - 0x30], 0x7b3a
mov byte [ebp - 0x2e], bl
xor byte [ebp + eax - 0x33], cl
inc eax
cmp eax, 5
jae 0x100153d8
mov cl, byte [ebp - 0x34]
jmp 0x100153c9
mov byte [ebp - 0x2e], bl
sub esp, 0x18
lea eax, [ebp - 0x33]
mov ecx, esp
push eax
call fcn.10003da0
lea eax, [ebp - 0x68]
push eax
call fcn.100039e5
add esp, 0x24
lea ecx, [ebp - 0x28]
push eax
call fcn.10008af4
lea ecx, [ebp - 0x68]
call fcn.10003b9e
cmp dword [ebp - 0x14], 0xf
lea eax, [ebp - 0x28]
movaps xmm0, xmmword [0x1004bf30]
mov ecx, ebx
cmova eax, dword [ebp - 0x28]
push eax
movups xmmword [ebp - 0x50], xmm0
mov dword [ebp - 0x40], 0x6b3d4338
mov word [ebp - 0x3c], 0x45
mov al, byte [ebp - 0x50]
xor byte [ebp + ecx - 0x4f], al
inc ecx
cmp ecx, 0x14
jb 0x1001542c
sub esp, 0x18
mov byte [ebp - 0x3b], bl
lea eax, [ebp - 0x4f]
mov ecx, esp
push eax
call fcn.10003da0
lea eax, [ebp - 0x68]
push eax
call fcn.100039e5
add esp, 0x20
mov byte [ebp - 4], 3
mov edx, eax
mov ecx, dword [esi + 0xc]
call fcn.1000d0e0
lea ecx, [ebp - 0x68]
call fcn.10003b9e
lea ecx, [ebp - 0x28]
call fcn.10003b9e
cmp word [esi + 0x28], bx
jg 0x10015483
xor eax, eax
mov byte [esi + 0x21], bl
mov word [esi + 0x28], ax
call fcn.1003d38f
ret