Function at 0x100f0570
Capabilities:
Encode data using xor

Disassembly:
mov eax, 0x34
call fcn.1005d3c0
mov eax, dword [0x101c10e0]
xor eax, esp
mov dword [esp + 0x30], eax
cmp dword [esp + 0x3c], 0
mov eax, dword [esp + 0x38]
mov dword [esp + 4], eax
mov dword [esp + 0x10], 0
jne 0x100f05b0
mov eax, 1
mov ecx, dword [esp + 0x30]
xor ecx, esp
call fcn.1005cef4
add esp, 0x34
ret
push ebx
call fcn.100b2260
mov ebx, eax
test ebx, ebx
je 0x100f08d3
push 0x100f0a30
push 0x101ccbfc
call fcn.100c0cd0
add esp, 8
neg eax
sbb eax, eax
test dword [0x101ccc08], eax
je 0x100f08d3
cmp dword [0x101ccc00], 0
push ebp
push esi
je 0x100f0625
call sub.KERNEL32.dll_GetCurrentThreadId
push dword [0x101ccbf8]
mov esi, eax
call fcn.100c0cc0
push esi
push dword [0x101ccc04]
call fcn.100c0c00
push dword [0x101ccbf8]
mov ebp, eax
mov dword [esp + 0x1c], ebp
call fcn.100c0d40
add esp, 0x10
test ebp, ebp
jne 0x100f063b
jmp 0x100f062d
mov dword [esp + 0xc], 0
push dword [0x101ccbf4]
call fcn.100c0cc0
add esp, 4
mov ecx, dword [esp + 0x48]
mov eax, dword [0x101ccbe0]
movups xmm0, xmmword [0x101ccbcc]
mov ebp, dword [0x101ccbe4]
push edi
mov edi, dword [0x101cc7b4]
add ecx, edi
mov dword [esp + 0x24], eax
mov eax, dword [0x101ccbdc]
mov dword [esp + 0x28], ebp
mov dword [esp + 0x3c], eax
mov dword [0x101cc7b4], ecx
movups xmmword [esp + 0x2c], xmm0
cmp ecx, 0x3ff
jb 0x100f06aa
mov eax, 0x401005
mov dword [0x101cc7b0], 0x3ff
mul ecx
mov eax, ecx
sub eax, edx
shr eax, 1
add eax, edx
shr eax, 9
imul eax, eax, 0x3ff
sub ecx, eax
mov dword [0x101cc7b4], ecx
jmp 0x100f06c0
mov eax, dword [0x101cc7b0]
cmp eax, 0x3ff
jae 0x100f06c0
cmp ecx, eax
cmova eax, ecx
mov dword [0x101cc7b0], eax
mov ecx, dword [esp + 0x4c]
mov eax, 0x66666667
imul ecx
sar edx, 3
mov esi, edx
shr esi, 0x1f
add esi, edx
lea eax, [esi + esi*4]
shl eax, 2
sub ecx, eax
xor eax, eax
test ecx, ecx
setg al
add eax, esi
add ebp, eax
mov dword [0x101ccbe4], ebp
mov ebp, dword [esp + 0x10]
test ebp, ebp
jne 0x100f0704
push dword [0x101ccbf4]
call fcn.100c0d40
add esp, 4
mov eax, dword [esp + 0x4c]
mov dword [esp + 0x18], 0
test eax, eax
jle 0x100f0845
mov dword [esp + 0x1c], eax
mov ecx, 0x14
cmp eax, 0x14
mov esi, eax
push 0
cmovg esi, ecx
call fcn.100b2610
push eax
push ebx
call fcn.100b1da0
add esp, 0xc
test eax, eax
je 0x100f08d0
push 0x14
lea eax, [esp + 0x30]
push eax
push ebx
call fcn.100b1f40
add esp, 0xc
test eax, eax
je 0x100f08d0
lea ebp, [edi - 0x3ff]
add ebp, esi
lea ecx, [edi + 0x101cc7b8]
test ebp, ebp
jle 0x100f078b
mov eax, esi
sub eax, ebp
push eax
push ecx
push ebx
call fcn.100b1f40
add esp, 0xc
test eax, eax
je 0x100f08d0
push ebp
push 0x101cc7b8
jmp 0x100f078d
push esi
push ecx
push ebx
call fcn.100b1f40
add esp, 0xc
test eax, eax
je 0x100f08d0
mov ebp, dword [esp + 0x14]
push esi
push ebp
push ebx
call fcn.100b1f40
add esp, 0xc
test eax, eax
je 0x100f08d0
push 8
lea eax, [esp + 0x28]
push eax
push ebx
call fcn.100b1f40
add esp, 0xc
test eax, eax
je 0x100f08d0
push 0
lea eax, [esp + 0x30]
push eax
push ebx
call fcn.100b1d00
add esp, 0xc
test eax, eax
je 0x100f08d0
inc dword [esp + 0x28]
add ebp, esi
xor ecx, ecx
mov dword [esp + 0x14], ebp
test esi, esi
jle 0x100f081c
nop word [eax + eax]
mov al, byte [esp + ecx + 0x2c]
xor byte [edi + 0x101cc7b8], al
lea eax, [edi + 1]
xor edi, edi
cmp eax, 0x3ff
cmovl edi, eax
inc ecx
cmp ecx, esi
jl 0x100f0800
mov ebp, dword [esp + 0x18]
mov ecx, 0x14
mov eax, dword [esp + 0x1c]
add ebp, 0x14
sub eax, 0x14
mov dword [esp + 0x18], ebp
mov dword [esp + 0x1c], eax
cmp ebp, dword [esp + 0x4c]
jl 0x100f0721
mov ebp, dword [esp + 0x10]
test ebp, ebp
jne 0x100f0860
push dword [0x101ccbf4]
call fcn.100c0cc0
add esp, 4
nop word [eax + eax]
movups xmm1, xmmword [0x101ccbcc]
xor ecx, ecx
mov edx, 4
movups xmm0, xmmword [esp + 0x2c]
pxor xmm1, xmm0
movups xmmword [0x101ccbcc], xmm1
nop
mov al, byte [esp + ecx + 0x3c]
lea ecx, [ecx + 1]
xor byte [ecx + 0x101ccbdb], al
sub edx, 1
jne 0x100f0880
movsd xmm0, qword [0x10160b38]
movsd xmm1, qword [0x101ccbe8]
comisd xmm0, xmm1
jbe 0x100f08b6
addsd xmm1, qword [esp + 0x50]
movsd qword [0x101ccbe8], xmm1
test ebp, ebp
jne 0x100f08c8
push dword [0x101ccbf4]
call fcn.100c0d40
add esp, 4
mov dword [esp + 0x20], 1
pop edi
pop esi
pop ebp
push ebx
call fcn.100b2240
mov ecx, dword [esp + 0x38]
add esp, 4
mov eax, dword [esp + 0x14]
pop ebx
xor ecx, esp
call fcn.1005cef4
add esp, 0x34
ret