Function at 0x1000fa4f
Capabilities:
Encode data using xor

Disassembly:
push 0x5c
mov eax, 0x10030b69
call fcn.1002fc16
mov ebx, ecx
mov eax, dword [ebx]
mov esi, dword [sym.imp.KERNEL32.dll_GetTickCount64]
mov dword [0x1003fd84], eax
call esi
sub eax, dword [ebx + 0x30]
mov ecx, eax
sbb edx, dword [ebx + 0x34]
call fcn.1002fe30
divss xmm0, dword [0x10037c68]
comiss xmm0, dword [0x10037c44]
jb 0x1000fdfe
call esi
mov dword [ebx + 0x34], edx
mov esi, 0xe10
xor edx, edx
mov dword [ebx + 0x30], eax
push 0x3c
pop edi
cmp byte [ebx + 0x20], dl
je 0x1000fc42
mov ecx, dword [ebx + 0x24]
test ecx, ecx
jle 0x1000fab6
dec ecx
mov dword [ebx + 0x24], ecx
test ecx, ecx
js 0x1000fc33
mov eax, ecx
cdq
idiv esi
mov eax, edx
cdq
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 0x1000fb4b
cmp edx, 0xa
jae 0x1000fb25
mov cl, 0x2b
mov dword [ebp - 0x34], 0x4f0e1b2b
mov dword [ebp - 0x30], 0x4f0e1b11
mov byte [ebp - 0x2c], al
xor byte [ebp + eax - 0x33], cl
inc eax
cmp eax, 7
jae 0x1000fb16
mov cl, byte [ebp - 0x34]
jmp 0x1000fb07
xor edx, edx
mov byte [ebp - 0x2c], dl
sub esp, 0x18
lea eax, [ebp - 0x33]
mov ecx, esp
jmp 0x1000fb8e
mov cl, 0x12
mov dword [ebp - 0x34], 0x76372212
mov dword [ebp - 0x30], 0x763728
xor byte [ebp + eax - 0x33], cl
inc eax
cmp eax, 6
jae 0x1000fb44
mov cl, byte [ebp - 0x34]
jmp 0x1000fb35
xor edx, edx
mov byte [ebp - 0x2d], dl
jmp 0x1000fb1b
cmp edx, 0xa
jae 0x1000fb6f
mov cl, 0x1e
mov dword [ebp - 0x34], 0x247a3b1e
mov dword [ebp - 0x30], 0x7a3b2e
xor byte [ebp + eax - 0x33], cl
inc eax
cmp eax, 6
jae 0x1000fb44
mov cl, byte [ebp - 0x34]
jmp 0x1000fb60
sub esp, 0x18
mov dword [ebp - 0x34], 0x3f612005
lea ecx, [ebp - 0x34]
mov word [ebp - 0x30], 0x6120
mov byte [ebp - 0x2e], al
mov esi, esp
call fcn.10004752
mov ecx, esi
push eax
call fcn.10003ec3
lea eax, [ebp - 0x50]
push eax
call fcn.10003d99
add esp, 0x24
lea ecx, [ebp - 0x28]
push eax
call fcn.10004988
lea ecx, [ebp - 0x50]
call fcn.100026bd
cmp dword [ebp - 0x14], 0xf
lea eax, [ebp - 0x28]
movaps xmm0, xmmword [0x100381e0]
cmova eax, dword [ebp - 0x28]
xor edx, edx
push eax
movups xmmword [ebp - 0x50], xmm0
mov dword [ebp - 0x40], 0x4866304e
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 0x1000fbd6
sub esp, 0x18
mov byte [ebp - 0x3c], dl
lea eax, [ebp - 0x4f]
mov ecx, esp
push eax
call fcn.10003ec3
lea eax, [ebp - 0x68]
push eax
call fcn.10003d99
add esp, 0x20
mov byte [ebp - 4], 1
mov edx, eax
mov ecx, dword [ebx + 8]
call fcn.10008e24
lea ecx, [ebp - 0x68]
call fcn.100026bd
or dword [ebp - 4], 0xffffffff
mov edx, dword [ebp - 0x14]
cmp edx, 0xf
jbe 0x1000fc2b
mov ecx, dword [ebp - 0x28]
inc edx
call fcn.10002690
push 0x3c
mov esi, 0xe10
pop edi
xor ecx, ecx
xor edx, edx
cmp dword [ebx + 0x24], ecx
jg 0x1000fc42
mov byte [ebx + 0x20], cl
mov dword [ebx + 0x24], ecx
cmp byte [ebx + 0x21], 0
je 0x1000fdfe
movzx eax, word [ebx + 0x28]
mov ecx, eax
test ax, ax
jle 0x1000fc5f
dec eax
mov word [ebx + 0x28], ax
movzx ecx, ax
test cx, cx
js 0x1000fdef
movsx ecx, cx
mov eax, ecx
cdq
idiv esi
mov eax, edx
cdq
idiv edi
movzx esi, ax
mov eax, ecx
cdq
idiv edi
xor eax, eax
lea edi, [ebp - 0x28]
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 edi
mov dword [ebp - 4], 2
cmp si, di
jae 0x1000fcd7
cmp cx, di
jae 0x1000fcd7
push ecx
push esi
mov cl, 0x62
mov dword [ebp - 0x34], 0x6475262
mov dword [ebp - 0x30], 0x6475258
mov eax, edx
mov byte [ebp - 0x2c], dl
xor byte [ebp + eax - 0x33], cl
inc eax
cmp eax, 7
jae 0x1000fcd2
mov cl, byte [ebp - 0x34]
jmp 0x1000fcc3
mov byte [ebp - 0x2c], dl
jmp 0x1000fd52
mov eax, ecx
mov edx, esi
push eax
push edx
xor edx, edx
mov eax, edx
cmp si, di
jae 0x1000fd0a
mov cl, 0xb
mov dword [ebp - 0x34], 0x6f2e3b0b
mov dword [ebp - 0x30], 0x6f2e31
xor byte [ebp + eax - 0x33], cl
inc eax
cmp eax, 6
jae 0x1000fd05
mov cl, byte [ebp - 0x34]
jmp 0x1000fcf6
mov byte [ebp - 0x2d], dl
jmp 0x1000fd52
cmp cx, di
jae 0x1000fd2e
mov cl, 0x70
mov dword [ebp - 0x34], 0x4a145570
mov dword [ebp - 0x30], 0x145540
xor byte [ebp + eax - 0x33], cl
inc eax
cmp eax, 6
jae 0x1000fd05
mov cl, byte [ebp - 0x34]
jmp 0x1000fd1f
mov cl, 0x45
mov dword [ebp - 0x34], 0x7f216045
mov word [ebp - 0x30], 0x2160
mov byte [ebp - 0x2e], dl
xor byte [ebp + eax - 0x33], cl
inc eax
cmp eax, 5
jae 0x1000fd4f
mov cl, byte [ebp - 0x34]
jmp 0x1000fd40
mov byte [ebp - 0x2e], dl
sub esp, 0x18
lea eax, [ebp - 0x33]
mov ecx, esp
push eax
call fcn.10003ec3
lea eax, [ebp - 0x68]
push eax
call fcn.10003d99
add esp, 0x24
lea ecx, [ebp - 0x28]
push eax
call fcn.10004988
lea ecx, [ebp - 0x68]
call fcn.100026bd
cmp dword [ebp - 0x14], 0xf
lea eax, [ebp - 0x28]
movaps xmm0, xmmword [0x100381a0]
cmova eax, dword [ebp - 0x28]
xor edx, edx
push eax
movups xmmword [ebp - 0x50], xmm0
mov dword [ebp - 0x40], 0x792f512a
mov ecx, edx
mov word [ebp - 0x3c], 0x57
mov al, byte [ebp - 0x50]
xor byte [ebp + ecx - 0x4f], al
inc ecx
cmp ecx, 0x14
jb 0x1000fda5
sub esp, 0x18
mov byte [ebp - 0x3b], dl
lea eax, [ebp - 0x4f]
mov ecx, esp
push eax
call fcn.10003ec3
lea eax, [ebp - 0x68]
push eax
call fcn.10003d99
add esp, 0x20
mov byte [ebp - 4], 3
mov edx, eax
mov ecx, dword [ebx + 0xc]
call fcn.10008e24
lea ecx, [ebp - 0x68]
call fcn.100026bd
lea ecx, [ebp - 0x28]
call fcn.100026bd
xor edx, edx
cmp word [ebx + 0x28], dx
jg 0x1000fdfe
xor eax, eax
mov byte [ebx + 0x21], dl
mov word [ebx + 0x28], ax
call fcn.1002fbd4
ret