Function at 0x10010859
Capabilities:
Encode data using xor

Disassembly:
push 0x5c
mov eax, 0x10035549
call fcn.10034356
mov ebx, ecx
mov eax, dword [ebx]
mov esi, dword [sym.imp.KERNEL32.dll_GetTickCount64]
mov dword [0x100461d0], eax
call esi
sub eax, dword [ebx + 0x30]
mov ecx, eax
sbb edx, dword [ebx + 0x34]
call fcn.10034810
divss xmm0, dword [0x1003dc1c]
comiss xmm0, dword [0x1003dbd4]
jb 0x10010c42
call esi
cmp byte [ebx + 0x20], 0
mov esi, 0xe10
mov dword [ebx + 0x30], eax
mov dword [ebx + 0x34], edx
je 0x10010a5e
mov ecx, dword [ebx + 0x24]
test ecx, ecx
jle 0x100108bc
dec ecx
mov dword [ebx + 0x24], ecx
test ecx, ecx
js 0x10010a51
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
mov dword [ebp - 4], eax
push edx
push esi
cmp esi, 0xa
jae 0x10010963
cmp edx, 0xa
jae 0x1001093e
push 0x58
pop eax
xor edx, edx
mov byte [ebp - 0x32], al
mov byte [ebp - 0x2e], al
mov cl, 0x7d
mov word [ebp - 0x34], 0x4d7d
mov eax, edx
mov word [ebp - 0x31], 0x4719
mov byte [ebp - 0x2f], 0x4d
mov word [ebp - 0x2d], 0x19
xor byte [ebp + eax - 0x33], cl
inc eax
cmp eax, 7
jae 0x10010931
mov cl, byte [ebp - 0x34]
jmp 0x10010922
mov byte [ebp - 0x2c], dl
sub esp, 0x18
lea eax, [ebp - 0x33]
mov ecx, esp
jmp 0x100109af
mov cl, 0x48
mov dword [ebp - 0x34], 0x2c6d7848
mov dword [ebp - 0x30], 0x2c6d72
xor byte [ebp + eax - 0x33], cl
inc eax
cmp eax, 6
jae 0x1001095d
mov cl, byte [ebp - 0x34]
jmp 0x1001094e
mov byte [ebp - 0x2d], 0
jmp 0x10010934
cmp edx, 0xa
jae 0x10010987
mov cl, 0x33
mov dword [ebp - 0x34], 0x9571633
mov dword [ebp - 0x30], 0x571603
xor byte [ebp + eax - 0x33], cl
inc eax
cmp eax, 6
jae 0x1001095d
mov cl, byte [ebp - 0x34]
jmp 0x10010978
push 0x25
pop eax
sub esp, 0x18
mov word [ebp - 0x34], 0x6441
lea ecx, [ebp - 0x34]
mov byte [ebp - 0x32], al
mov word [ebp - 0x31], 0x647b
mov esi, esp
mov byte [ebp - 0x2f], al
mov byte [ebp - 0x2e], 0
call fcn.1000515e
mov ecx, esi
push eax
call fcn.10002607
lea eax, [ebp - 0x50]
push eax
call fcn.1000485f
add esp, 0x24
lea ecx, [ebp - 0x28]
push eax
call fcn.10005394
lea ecx, [ebp - 0x50]
call fcn.10002413
cmp dword [ebp - 0x14], 0xf
lea eax, [ebp - 0x28]
movaps xmm0, xmmword [0x1003e2a0]
cmova eax, dword [ebp - 0x28]
xor edx, edx
push eax
movups xmmword [ebp - 0x50], xmm0
mov dword [ebp - 0x40], 0x56782e50
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 0x100109f7
sub esp, 0x18
mov byte [ebp - 0x3c], dl
lea eax, [ebp - 0x4f]
mov ecx, esp
push eax
call fcn.10002607
lea eax, [ebp - 0x68]
push eax
call fcn.1000485f
add esp, 0x20
mov byte [ebp - 4], 1
mov edx, eax
mov ecx, dword [ebx + 8]
call fcn.10009be1
lea ecx, [ebp - 0x68]
call fcn.10002413
or dword [ebp - 4], 0xffffffff
mov edx, dword [ebp - 0x14]
cmp edx, 0xf
jbe 0x10010a4c
mov ecx, dword [ebp - 0x28]
inc edx
call fcn.100023e6
mov esi, 0xe10
xor ecx, ecx
cmp dword [ebx + 0x24], ecx
jg 0x10010a5e
mov byte [ebx + 0x20], cl
mov dword [ebx + 0x24], ecx
cmp byte [ebx + 0x21], 0
je 0x10010c42
movzx eax, word [ebx + 0x28]
mov ecx, eax
test ax, ax
jle 0x10010a7b
dec eax
mov word [ebx + 0x28], ax
movzx ecx, ax
test cx, cx
js 0x10010c33
movsx ecx, cx
mov eax, ecx
cdq
idiv esi
push 0x3c
mov eax, edx
cdq
pop edi
idiv edi
movzx esi, 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
and dword [ebp - 0x18], 0
mov dword [ebp - 0x14], 0xf
mov byte [ebp - 0x28], 0
push 0xa
pop edi
mov dword [ebp - 4], 2
cmp si, di
jae 0x10010afc
cmp dx, di
jae 0x10010afc
push edx
push esi
push 0x48
pop ecx
xor edx, edx
mov byte [ebp - 0x34], cl
mov dword [ebp - 0x33], 0x722c6d78
mov eax, edx
mov dword [ebp - 0x2f], 0x2c6d78
xor byte [ebp + eax - 0x33], cl
inc eax
cmp eax, 7
jae 0x10010af4
mov cl, byte [ebp - 0x34]
jmp 0x10010ae5
mov byte [ebp - 0x2c], dl
jmp 0x10010b95
mov eax, edx
mov ecx, esi
push eax
push ecx
cmp si, di
jae 0x10010b35
push 0x25
xor edx, edx
mov dword [ebp - 0x33], 0x1f410015
pop ecx
mov byte [ebp - 0x34], cl
mov eax, edx
mov word [ebp - 0x2f], 0x4100
mov byte [ebp - 0x2d], dl
xor byte [ebp + eax - 0x33], cl
inc eax
cmp eax, 6
jae 0x10010b30
mov cl, byte [ebp - 0x34]
jmp 0x10010b21
mov byte [ebp - 0x2d], dl
jmp 0x10010b95
cmp dx, di
jae 0x10010b6d
push 0x58
pop ecx
push 0x3c
pop eax
xor edx, edx
mov byte [ebp - 0x32], al
mov byte [ebp - 0x2e], al
mov eax, edx
mov byte [ebp - 0x34], cl
mov byte [ebp - 0x33], 0x7d
mov word [ebp - 0x31], 0x6862
mov byte [ebp - 0x2f], 0x7d
mov byte [ebp - 0x2d], dl
xor byte [ebp + eax - 0x33], cl
inc eax
cmp eax, 6
jae 0x10010b30
mov cl, byte [ebp - 0x34]
jmp 0x10010b5e
xor edx, edx
mov dword [ebp - 0x34], 0x2678391c
mov cl, 0x1c
mov word [ebp - 0x30], 0x7839
mov byte [ebp - 0x2e], dl
mov eax, edx
xor byte [ebp + eax - 0x33], cl
inc eax
cmp eax, 5
jae 0x10010b92
mov cl, byte [ebp - 0x34]
jmp 0x10010b83
mov byte [ebp - 0x2e], dl
sub esp, 0x18
lea eax, [ebp - 0x33]
mov ecx, esp
push eax
call fcn.10002607
lea eax, [ebp - 0x68]
push eax
call fcn.1000485f
add esp, 0x24
lea ecx, [ebp - 0x28]
push eax
call fcn.10005394
lea ecx, [ebp - 0x68]
call fcn.10002413
cmp dword [ebp - 0x14], 0xf
lea eax, [ebp - 0x28]
movaps xmm0, xmmword [0x1003e700]
cmova eax, dword [ebp - 0x28]
xor edx, edx
push eax
push 0x3c
pop eax
movups xmmword [ebp - 0x50], xmm0
mov dword [ebp - 0x40], 0x12443a41
mov ecx, edx
mov byte [ebp - 0x3c], al
mov byte [ebp - 0x3b], dl
mov al, byte [ebp - 0x50]
xor byte [ebp + ecx - 0x4f], al
inc ecx
cmp ecx, 0x14
jb 0x10010beb
sub esp, 0x18
mov byte [ebp - 0x3b], dl
lea eax, [ebp - 0x4f]
mov ecx, esp
push eax
call fcn.10002607
lea eax, [ebp - 0x68]
push eax
call fcn.1000485f
add esp, 0x20
mov byte [ebp - 4], 3
mov edx, eax
mov ecx, dword [ebx + 0xc]
call fcn.10009be1
lea ecx, [ebp - 0x68]
call fcn.10002413
lea ecx, [ebp - 0x28]
call fcn.10002413
xor eax, eax
cmp word [ebx + 0x28], ax
jg 0x10010c42
mov byte [ebx + 0x21], al
mov word [ebx + 0x28], ax
call fcn.10034314
ret