Function at 0x10010a61
Capabilities:
Encode data using xor

Disassembly:
push 0x5c
mov eax, 0x100357e9
call fcn.10034586
mov ebx, ecx
mov eax, dword [ebx]
mov esi, dword [sym.imp.KERNEL32.dll_GetTickCount64]
mov dword [0x100461d4], eax
call esi
sub eax, dword [ebx + 0x30]
mov ecx, eax
sbb edx, dword [ebx + 0x34]
call fcn.10034ab0
divss xmm0, dword [0x1003dc2c]
comiss xmm0, dword [0x1003dbe0]
jb 0x10010e25
call esi
mov dword [ebx + 0x34], edx
mov esi, 0xe10
xor edx, edx
mov dword [ebx + 0x30], eax
cmp byte [ebx + 0x20], dl
je 0x10010c60
mov ecx, dword [ebx + 0x24]
test ecx, ecx
jle 0x10010ac5
dec ecx
mov dword [ebx + 0x24], ecx
test ecx, ecx
js 0x10010c51
mov eax, ecx
cdq
idiv esi
push 0x3c
mov eax, edx
cdq
pop edi
idiv edi
mov esi, 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
push 0xa
pop ecx
mov dword [ebp - 4], eax
push edx
push esi
cmp esi, ecx
jae 0x10010b5f
cmp edx, ecx
jae 0x10010b39
push 0x3c
pop ecx
mov byte [ebp - 0x34], cl
mov dword [ebp - 0x33], 0x658190c
mov dword [ebp - 0x2f], 0x58190c
xor byte [ebp + eax - 0x33], cl
inc eax
cmp eax, 7
jae 0x10010b2a
mov cl, byte [ebp - 0x34]
jmp 0x10010b1b
xor edx, edx
mov byte [ebp - 0x2c], dl
sub esp, 0x18
lea eax, [ebp - 0x33]
mov ecx, esp
jmp 0x10010baf
mov cl, 0x77
mov dword [ebp - 0x34], 0x13524777
mov dword [ebp - 0x30], 0x13524d
xor byte [ebp + eax - 0x33], cl
inc eax
cmp eax, 6
jae 0x10010b58
mov cl, byte [ebp - 0x34]
jmp 0x10010b49
xor edx, edx
mov byte [ebp - 0x2d], dl
jmp 0x10010b2f
cmp edx, ecx
jae 0x10010b90
push 0xa
pop edx
mov cl, 0x2f
mov byte [ebp - 0x33], dl
mov byte [ebp - 0x34], cl
mov word [ebp - 0x32], 0x154b
mov byte [ebp - 0x30], 0x1f
mov byte [ebp - 0x2f], dl
mov word [ebp - 0x2e], 0x4b
xor byte [ebp + eax - 0x33], cl
inc eax
cmp eax, 6
jae 0x10010b58
mov cl, byte [ebp - 0x34]
jmp 0x10010b81
sub esp, 0x18
mov dword [ebp - 0x34], 0xb551431
lea ecx, [ebp - 0x34]
mov word [ebp - 0x30], 0x5514
mov byte [ebp - 0x2e], al
mov esi, esp
call fcn.10005169
mov ecx, esi
push eax
call fcn.10002604
lea eax, [ebp - 0x50]
push eax
call fcn.10004864
add esp, 0x24
lea ecx, [ebp - 0x28]
push eax
call fcn.1000539f
lea ecx, [ebp - 0x50]
call fcn.10002410
cmp dword [ebp - 0x14], 0xf
lea eax, [ebp - 0x28]
movaps xmm0, xmmword [0x1003e770]
cmova eax, dword [ebp - 0x28]
xor edx, edx
push eax
movups xmmword [ebp - 0x50], xmm0
mov dword [ebp - 0x40], 0x200e5826
mov ecx, edx
mov byte [ebp - 0x3c], dl
mov al, byte [ebp - 0x50]
xor byte [ebp + ecx - 0x4f], al
inc ecx
cmp ecx, 0x13
jb 0x10010bf7
sub esp, 0x18
mov byte [ebp - 0x3c], dl
lea eax, [ebp - 0x4f]
mov ecx, esp
push eax
call fcn.10002604
lea eax, [ebp - 0x68]
push eax
call fcn.10004864
add esp, 0x20
mov byte [ebp - 4], 1
mov edx, eax
mov ecx, dword [ebx + 8]
call fcn.10009e29
lea ecx, [ebp - 0x68]
call fcn.10002410
or dword [ebp - 4], 0xffffffff
mov edx, dword [ebp - 0x14]
cmp edx, 0xf
jbe 0x10010c4c
mov ecx, dword [ebp - 0x28]
inc edx
call fcn.100023e3
mov esi, 0xe10
xor ecx, ecx
xor edx, edx
cmp dword [ebx + 0x24], ecx
jg 0x10010c60
mov byte [ebx + 0x20], cl
mov dword [ebx + 0x24], ecx
cmp byte [ebx + 0x21], 0
je 0x10010e25
movzx eax, word [ebx + 0x28]
mov ecx, eax
test ax, ax
jle 0x10010c7d
dec eax
mov word [ebx + 0x28], ax
movzx ecx, ax
test cx, cx
js 0x10010e16
movsx ecx, cx
lea edi, [ebp - 0x28]
mov eax, ecx
cdq
idiv esi
push 0x3c
mov eax, edx
cdq
pop esi
idiv esi
push 0x3c
movzx esi, ax
mov eax, ecx
cdq
pop ecx
idiv ecx
xor eax, eax
stosd dword es:[edi], eax
movzx ecx, dx
xor edx, edx
stosd dword es:[edi], eax
stosd dword es:[edi], eax
stosd dword es:[edi], eax
mov dword [ebp - 0x18], edx
mov dword [ebp - 0x14], 0xf
mov byte [ebp - 0x28], dl
push 0xa
pop eax
mov dword [ebp - 4], 2
cmp si, ax
jae 0x10010cfb
cmp cx, ax
jae 0x10010cfb
push ecx
push esi
mov cl, 0x23
mov dword [ebp - 0x34], 0x47061323
mov dword [ebp - 0x30], 0x47061319
mov eax, edx
mov byte [ebp - 0x2c], dl
xor byte [ebp + eax - 0x33], cl
inc eax
cmp eax, 7
jae 0x10010cf6
mov cl, byte [ebp - 0x34]
jmp 0x10010ce7
mov byte [ebp - 0x2c], dl
jmp 0x10010d79
push 0xa
pop edi
mov eax, ecx
mov edx, esi
push eax
push edx
xor edx, edx
mov eax, edx
cmp si, di
jae 0x10010d31
mov cl, 0x1e
mov dword [ebp - 0x34], 0x7a3b2e1e
mov dword [ebp - 0x30], 0x7a3b24
xor byte [ebp + eax - 0x33], cl
inc eax
cmp eax, 6
jae 0x10010d2c
mov cl, byte [ebp - 0x34]
jmp 0x10010d1d
mov byte [ebp - 0x2d], dl
jmp 0x10010d79
cmp cx, di
jae 0x10010d55
mov cl, 0x32
mov dword [ebp - 0x34], 0x8561732
mov dword [ebp - 0x30], 0x561702
xor byte [ebp + eax - 0x33], cl
inc eax
cmp eax, 6
jae 0x10010d2c
mov cl, byte [ebp - 0x34]
jmp 0x10010d46
mov cl, 0x64
mov dword [ebp - 0x34], 0x5e004164
mov word [ebp - 0x30], 0x41
mov byte [ebp - 0x2e], dl
xor byte [ebp + eax - 0x33], cl
inc eax
cmp eax, 5
jae 0x10010d76
mov cl, byte [ebp - 0x34]
jmp 0x10010d67
mov byte [ebp - 0x2e], dl
sub esp, 0x18
lea eax, [ebp - 0x33]
mov ecx, esp
push eax
call fcn.10002604
lea eax, [ebp - 0x68]
push eax
call fcn.10004864
add esp, 0x24
lea ecx, [ebp - 0x28]
push eax
call fcn.1000539f
lea ecx, [ebp - 0x68]
call fcn.10002410
cmp dword [ebp - 0x14], 0xf
lea eax, [ebp - 0x28]
movaps xmm0, xmmword [0x1003eb50]
cmova eax, dword [ebp - 0x28]
xor edx, edx
push eax
movups xmmword [ebp - 0x50], xmm0
mov dword [ebp - 0x40], 0x37611f64
mov ecx, edx
mov word [ebp - 0x3c], 0x19
mov al, byte [ebp - 0x50]
xor byte [ebp + ecx - 0x4f], al
inc ecx
cmp ecx, 0x14
jb 0x10010dcc
sub esp, 0x18
mov byte [ebp - 0x3b], dl
lea eax, [ebp - 0x4f]
mov ecx, esp
push eax
call fcn.10002604
lea eax, [ebp - 0x68]
push eax
call fcn.10004864
add esp, 0x20
mov byte [ebp - 4], 3
mov edx, eax
mov ecx, dword [ebx + 0xc]
call fcn.10009e29
lea ecx, [ebp - 0x68]
call fcn.10002410
lea ecx, [ebp - 0x28]
call fcn.10002410
xor edx, edx
cmp word [ebx + 0x28], dx
jg 0x10010e25
xor eax, eax
mov byte [ebx + 0x21], dl
mov word [ebx + 0x28], ax
call fcn.10034544
ret