Function at 0x100c5e80
Capabilities:
Encode data using xor

Disassembly:
push ebx
mov ebx, esp
sub esp, 8
and esp, 0xfffffff8
add esp, 4
push ebp
mov ebp, dword [ebx + 4]
mov dword [esp + 4], ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x101314c1
mov eax, dword fs:[0]
push eax
push ebx
sub esp, 0x68
mov eax, dword [0x1016c008]
xor eax, ebp
mov dword [ebp - 0x14], eax
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov dword [ebp - 0x50], 0
cmp dword [0x101df848], 0
je 0x100c6781
mov eax, dword [0x101dff6c]
mov ecx, dword [0x101dff70]
mov dword [ebp - 0x64], eax
cdq
sub eax, edx
mov dword [ebp - 0x5c], ecx
mov edi, eax
mov eax, ecx
mov ecx, dword [0x101f4798]
cdq
sub eax, edx
sar edi, 1
sar eax, 1
mov edx, dword [ecx]
mov dword [ebp - 0x74], edi
mov dword [ebp - 0x58], eax
mov edx, dword [edx + 0x34]
call edx
push 0x18
mov dword [ebp - 0x2c], 0
lea ecx, [ebp - 0x2c]
push str.gradient_scope_thickness
mov dword [ebp - 0x54], eax
mov dword [ebp - 0x1c], 0
mov dword [ebp - 0x18], 0xf
mov byte [ebp - 0x2c], 0
call fcn.10011990
lea eax, [ebp - 0x2c]
mov dword [ebp - 4], 0
push eax
mov ecx, 0x101e95b0
call fcn.10010790
mov eax, dword [eax]
mov dword [ebp - 4], 0xffffffff
mov edx, dword [ebp - 0x18]
mov dword [ebp - 0x60], eax
cmp edx, 0x10
jb 0x100c5f86
mov ecx, dword [ebp - 0x2c]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x100c5f7c
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
jbe 0x100c5f7c
call dword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
push edx
push ecx
call fcn.10128808
add esp, 8
push 0x14
mov dword [ebp - 0x44], 0
lea ecx, [ebp - 0x44]
push str.effects_remove_scope
mov dword [ebp - 0x34], 0
mov dword [ebp - 0x30], 0xf
mov byte [ebp - 0x44], 0
call fcn.10011990
lea eax, [ebp - 0x44]
mov dword [ebp - 4], 1
mov esi, 1
mov ecx, 0x101e9590
push eax
mov dword [ebp - 0x4c], esi
mov dword [ebp - 0x50], esi
call fcn.100107b0
cmp byte [eax], 0
je 0x100c60c5
push 0x14
mov dword [ebp - 0x2c], 0
lea ecx, [ebp - 0x2c]
push str.effects_custom_scope
mov dword [ebp - 0x1c], 0
mov dword [ebp - 0x18], 0xf
mov byte [ebp - 0x2c], 0
call fcn.10011990
lea eax, [ebp - 0x2c]
mov dword [ebp - 4], 2
mov esi, 3
mov ecx, 0x101e9590
push eax
mov dword [ebp - 0x4c], esi
mov dword [ebp - 0x50], esi
call fcn.100107b0
cmp byte [eax], 0
jne 0x100c60c5
mov eax, dword [0x101f5c34]
mov ecx, dword [0x101df848]
add eax, 0xffffffcc
xor eax, 0xea42ce00
cmp dword [eax + ecx], 0
jne 0x100c60c5
mov eax, dword [0x101f5cd4]
add eax, 0xffffffa4
xor eax, 0xea42ce28
mov eax, dword [eax + ecx]
mov ecx, dword [0x101f4698]
push ecx
mov edx, dword [ecx]
mov esi, dword [edx + 0x10]
mov edx, esp
mov dword [edx], eax
call esi
test eax, eax
je 0x100c60c5
mov ecx, dword [0x101f4698]
mov eax, dword [0x101f5cd4]
add eax, 0xffffffa4
xor eax, 0xea42ce28
mov edx, dword [ecx]
add eax, dword [0x101df848]
push ecx
mov esi, dword [edx + 0x10]
mov edx, esp
mov eax, dword [eax]
mov dword [edx], eax
call esi
mov ecx, eax
mov eax, dword [ecx]
mov eax, dword [eax + 0x6f8]
call eax
cmp dword [eax + 0xc8], 5
jne 0x100c60c5
mov ecx, dword [0x101f5c84]
mov eax, dword [0x101df848]
add ecx, 0xffffffb8
xor ecx, 0xea42ce14
mov byte [ebp - 0x45], 1
cmp byte [ecx + eax], 0
jne 0x100c60c9
mov byte [ebp - 0x45], 0
mov dword [ebp - 4], 1
mov eax, dword [ebp - 0x4c]
test al, 2
je 0x100c6122
mov edx, dword [ebp - 0x18]
and eax, 0xfffffffd
mov dword [ebp - 0x4c], eax
cmp edx, 0x10
jb 0x100c6110
mov ecx, dword [ebp - 0x2c]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x100c6103
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x100c6159
push edx
push ecx
call fcn.10128808
mov eax, dword [ebp - 0x4c]
add esp, 8
mov dword [ebp - 0x1c], 0
mov dword [ebp - 0x18], 0xf
mov byte [ebp - 0x2c], 0
mov dword [ebp - 4], 0xffffffff
test al, 1
je 0x100c6169
mov edx, dword [ebp - 0x30]
and eax, 0xfffffffe
mov dword [ebp - 0x4c], eax
cmp edx, 0x10
jb 0x100c6169
mov ecx, dword [ebp - 0x44]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x100c615f
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
jbe 0x100c615f
call dword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
push edx
push ecx
call fcn.10128808
add esp, 8
cmp byte [ebp - 0x45], 0
je 0x100c61e0
mov eax, dword [ebp - 0x54]
mov esi, dword [ebp - 0x58]
cmp eax, 1
jle 0x100c6183
cdq
sub eax, edx
sar eax, 1
sub edi, eax
sub esi, eax
mov ecx, dword [0x101f46a0]
push dword [0x1015ec78]
mov eax, dword [ecx]
mov eax, dword [eax + 0x38]
call eax
mov ecx, dword [0x101f46a0]
mov eax, dword [ebp - 0x54]
add eax, esi
push eax
push dword [ebp - 0x64]
mov edx, dword [ecx]
push esi
push 0
mov eax, dword [edx + 0x40]
call eax
mov ecx, dword [0x101f46a0]
push dword [0x1015ec78]
mov eax, dword [ecx]
mov eax, dword [eax + 0x38]
call eax
mov ecx, dword [0x101f46a0]
push dword [ebp - 0x5c]
mov eax, dword [ebp - 0x54]
add eax, edi
mov edx, dword [ecx]
push eax
push 0
push edi
mov eax, dword [edx + 0x40]
call eax
jmp 0x100c66b3
push 0x14
mov dword [ebp - 0x44], 0
lea ecx, [ebp - 0x44]
push str.effects_remove_scope
mov dword [ebp - 0x34], 0
mov dword [ebp - 0x30], 0xf
mov byte [ebp - 0x44], 0
call fcn.10011990
mov dword [ebp - 4], 3
lea eax, [ebp - 0x44]
mov esi, dword [ebp - 0x4c]
mov ecx, 0x101e9590
or esi, 4
push eax
mov dword [ebp - 0x4c], esi
mov dword [ebp - 0x50], esi
call fcn.100107b0
cmp byte [eax], 0
je 0x100c631e
push 0x14
mov dword [ebp - 0x2c], 0
lea ecx, [ebp - 0x2c]
push str.effects_custom_scope
mov dword [ebp - 0x1c], 0
mov dword [ebp - 0x18], 0xf
mov byte [ebp - 0x2c], 0
call fcn.10011990
lea eax, [ebp - 0x2c]
mov dword [ebp - 4], 4
or esi, 8
mov ecx, 0x101e9590
push eax
mov dword [ebp - 0x4c], esi
mov dword [ebp - 0x50], esi
call fcn.100107b0
cmp byte [eax], 0
je 0x100c631e
mov eax, dword [0x101f5c34]
mov ecx, dword [0x101df848]
add eax, 0xffffffcc
xor eax, 0xea42ce00
cmp dword [eax + ecx], 0
jne 0x100c631e
mov eax, dword [0x101f5cd4]
add eax, 0xffffffa4
xor eax, 0xea42ce28
mov eax, dword [eax + ecx]
mov ecx, dword [0x101f4698]
push ecx
mov edx, dword [ecx]
mov esi, dword [edx + 0x10]
mov edx, esp
mov dword [edx], eax
call esi
test eax, eax
je 0x100c631e
mov ecx, dword [0x101f4698]
mov eax, dword [0x101f5cd4]
add eax, 0xffffffa4
xor eax, 0xea42ce28
mov edx, dword [ecx]
add eax, dword [0x101df848]
push ecx
mov esi, dword [edx + 0x10]
mov edx, esp
mov eax, dword [eax]
mov dword [edx], eax
call esi
mov ecx, eax
mov eax, dword [ecx]
mov eax, dword [eax + 0x6f8]
call eax
cmp dword [eax + 0xc8], 5
jne 0x100c631e
mov ecx, dword [0x101f5c84]
mov eax, dword [0x101df848]
add ecx, 0xffffffb8
xor ecx, 0xea42ce14
mov byte [ebp - 0x45], 1
cmp byte [ecx + eax], 0
jne 0x100c6322
mov byte [ebp - 0x45], 0
mov dword [ebp - 4], 3
mov eax, dword [ebp - 0x4c]
test al, 8
je 0x100c637b
mov edx, dword [ebp - 0x18]
and eax, 0xfffffff7
mov dword [ebp - 0x4c], eax
cmp edx, 0x10
jb 0x100c6369
mov ecx, dword [ebp - 0x2c]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x100c635c
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x100c63ac
push edx
push ecx
call fcn.10128808
mov eax, dword [ebp - 0x4c]
add esp, 8
mov dword [ebp - 0x1c], 0
mov dword [ebp - 0x18], 0xf
mov byte [ebp - 0x2c], 0
mov dword [ebp - 4], 0xffffffff
test al, 4
je 0x100c63bc
mov edx, dword [ebp - 0x30]
cmp edx, 0x10
jb 0x100c63bc
mov ecx, dword [ebp - 0x44]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x100c63b2
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
jbe 0x100c63b2
call dword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
push edx
push ecx
call fcn.10128808
add esp, 8
cmp byte [ebp - 0x45], 0
je 0x100c66b3
movaps xmm0, xmmword [0x10163740]
mov eax, 0x10
pxor xmm0, xmmword [0x10162c20]
mov word [ebp - 0x18], 0x704
mov byte [ebp - 0x16], 0x6b
movups xmmword [ebp - 0x28], xmm0
nop dword [eax + eax]
xor byte [ebp + eax - 0x28], 0x6b
inc eax
cmp eax, 0x13
jb 0x100c63f0
lea ecx, [ebp - 0x28]
mov dword [ebp - 0x44], 0
mov dword [ebp - 0x34], 0
lea edx, [ecx + 1]
mov dword [ebp - 0x30], 0xf
mov byte [ebp - 0x44], 0
nop word [eax + eax]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x100c6420
sub ecx, edx
lea eax, [ebp - 0x28]
push ecx
push eax
lea ecx, [ebp - 0x44]
call fcn.10011990
lea eax, [ebp - 0x44]
mov dword [ebp - 4], 5
push eax
mov ecx, 0x101e95f0
call fcn.10010770
movss xmm1, dword [0x10162960]
movss xmm0, dword [eax + 0xc]
mulss xmm0, xmm1
cvttss2si ecx, xmm0
movss xmm0, dword [eax + 8]
mulss xmm0, xmm1
mov dword [ebp - 0x5c], ecx
cvttss2si ecx, xmm0
movss xmm0, dword [eax + 4]
mulss xmm0, xmm1
mov dword [ebp - 0x64], ecx
cvttss2si ecx, xmm0
movss xmm0, dword [eax]
mulss xmm0, xmm1
mov dword [ebp - 4], 0xffffffff
mov edx, dword [ebp - 0x30]
mov dword [ebp - 0x54], ecx
cvttss2si eax, xmm0
mov dword [ebp - 0x50], eax
cmp edx, 0x10
jb 0x100c64cf
mov ecx, dword [ebp - 0x44]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x100c64c5
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
jbe 0x100c64c5
call dword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
push edx
push ecx
call fcn.10128808
add esp, 8
push 0x13
mov dword [ebp - 0x44], 0
lea ecx, [ebp - 0x44]
push str.gradient_scope_size
mov dword [ebp - 0x34], 0
mov dword [ebp - 0x30], 0xf
mov byte [ebp - 0x44], 0
call fcn.10011990
lea eax, [ebp - 0x44]
mov dword [ebp - 4], 6
push eax
mov ecx, 0x101e95b0
call fcn.10010790
mov esi, dword [eax]
mov dword [ebp - 4], 0xffffffff
mov edx, dword [ebp - 0x30]
cmp edx, 0x10
jb 0x100c654b
mov ecx, dword [ebp - 0x44]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x100c6541
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
jbe 0x100c6541
call dword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
push edx
push ecx
call fcn.10128808
add esp, 8
mov eax, dword [ebp - 0x5c]
dec edi
movd xmm0, dword [ebp - 0x58]
mov ecx, dword [0x101f46a0]
movzx edx, al
mov eax, dword [ebp - 0x64]
movzx eax, al
shl edx, 8
or edx, eax
movd xmm1, esi
mov eax, dword [ebp - 0x54]
cvtdq2pd xmm1, xmm1
movzx eax, al
shl edx, 8
or edx, eax
mov dword [ebp - 0x54], edi
mov eax, dword [ebp - 0x50]
movzx eax, al
cvtdq2pd xmm0, xmm0
shl edx, 8
or edx, eax
mov eax, dword [ecx]
push edx
mov dword [ebp - 0x4c], edx
mulsd xmm1, qword [0x10162790]
mov eax, dword [eax + 0x38]
subsd xmm0, xmm1
movsd qword [ebp - 0x70], xmm1
cvttsd2si esi, xmm0
call eax
mov ecx, dword [0x101f46a0]
add edi, dword [ebp - 0x60]
push 0
push 0xff
mov edx, dword [ecx]
movsd xmm0, qword [0x101627e8]
subsd xmm0, qword [ebp - 0x70]
push 0
cvttsd2si eax, xmm0
mov dword [ebp - 0x50], eax
mov eax, esi
sub eax, dword [ebp - 0x50]
push eax
mov eax, dword [edx + 0x1ec]
push edi
push esi
push dword [ebp - 0x54]
call eax
movd xmm0, dword [ebp - 0x74]
mov ecx, dword [0x101f46a0]
mov edi, dword [ebp - 0x58]
push dword [ebp - 0x4c]
cvtdq2pd xmm0, xmm0
mov eax, dword [ecx]
dec edi
mov eax, dword [eax + 0x38]
subsd xmm0, qword [ebp - 0x70]
cvttsd2si esi, xmm0
call eax
mov ecx, dword [0x101f46a0]
mov eax, esi
sub eax, dword [ebp - 0x50]
add edi, dword [ebp - 0x60]
push 1
mov edx, dword [ecx]
push 0xff
push 0
push edi
push eax
mov eax, dword [ebp - 0x58]
dec eax
push eax
mov eax, dword [edx + 0x1ec]
push esi
call eax
mov ecx, dword [0x101f46a0]
mov esi, dword [ebp - 0x58]
push dword [ebp - 0x4c]
add esi, 0xa
mov eax, dword [ecx]
mov eax, dword [eax + 0x38]
call eax
mov ecx, dword [0x101f46a0]
mov eax, esi
sub eax, dword [ebp - 0x50]
push 0
push 0
mov edx, dword [ecx]
push 0xff
push eax
mov eax, dword [ebp - 0x54]
add eax, dword [ebp - 0x60]
push eax
mov eax, dword [edx + 0x1ec]
push esi
push dword [ebp - 0x54]
call eax
mov ecx, dword [0x101f46a0]
mov esi, dword [ebp - 0x74]
push dword [ebp - 0x4c]
add esi, 0xa
mov eax, dword [ecx]
mov eax, dword [eax + 0x38]
call eax
mov ecx, dword [0x101f46a0]
mov eax, esi
sub eax, dword [ebp - 0x50]
push 1
push 0
mov edx, dword [ecx]
push 0xff
push edi
push eax
mov eax, dword [ebp - 0x58]
dec eax
push eax
mov eax, dword [edx + 0x1ec]
push esi
call eax
mov ecx, dword [0x101f4698]
mov edi, 1
mov eax, dword [ecx]
mov eax, dword [eax + 0x18]
call eax
cmp eax, edi
jl 0x100c6745
nop dword [eax]
mov ecx, dword [0x101f4698]
push edi
mov eax, dword [ecx]
mov eax, dword [eax + 0xc]
call eax
mov esi, eax
test esi, esi
je 0x100c6733
mov ecx, dword [esi]
mov edx, dword [ecx + 0x260]
mov ecx, esi
call edx
test al, al
je 0x100c671d
mov eax, dword [0x101f5c34]
add eax, 0xffffffcc
xor eax, 0xea42ce00
cmp dword [eax + esi], 0
jne 0x100c6733
mov eax, dword [0x101f4834]
cmp byte [eax + esi], 0
jne 0x100c6733
push esi
mov ecx, 0x1021ab08
call fcn.100cb860
push esi
mov ecx, 0x1021ab08
call fcn.100c9e50
push esi
mov ecx, 0x1021ab08
call fcn.100c8ea0
mov ecx, dword [0x101f4698]
inc edi
mov eax, dword [ecx]
mov eax, dword [eax + 0x18]
call eax
cmp edi, eax
jle 0x100c66d0
call fcn.100c88e0
mov ecx, 0x1021ab08
call fcn.100c6ba0
mov ecx, 0x1021ab08
call fcn.100c78d0
call fcn.100c8430
call fcn.100c67a0
call fcn.100b9be0
call fcn.100c8ce0
call fcn.100c59d0
mov ecx, 0x1021ab08
call fcn.100cea30
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
mov ecx, dword [ebp - 0x14]
xor ecx, ebp
call fcn.1012838d
mov esp, ebp
pop ebp
mov esp, ebx
pop ebx
ret