Function at 0x1007fe70
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
sub esp, 0xd4
mov eax, dword [0x101165b0]
xor eax, ebp
mov dword [ebp - 4], eax
push esi
mov esi, ecx
call sym.cis_cc_3.2.dll_PCIS_CC_GetState
cmp eax, 4
je 0x10080228
mov ecx, dword [esi + 0x80]
lea eax, [esi + 4]
add esi, 0x44
push ebx
mov dword [ebp - 0xc8], ecx
lea ebx, [ebp - 0x84]
lea ecx, [ebp - 0x44]
sub ebx, eax
sub ecx, eax
push edi
xor edi, edi
mov dword [ebp - 0xd0], eax
mov dword [ebp - 0xd4], ebx
mov dword [ebp - 0xcc], ecx
sub esi, eax
jmp 0x1007fed6
mov ebx, dword [ebp - 0xd4]
mov edx, dword [eax]
mov ecx, dword [ebp + 8]
movzx ecx, byte [edi + ecx]
mov dword [ebx + eax - 0x40], edx
xor edx, ecx
mov dword [ebx + eax], ecx
xor ecx, dword [ebp - 0xc8]
mov ebx, dword [ebp - 0xcc]
mov dword [ebx + eax], edx
mov edx, dword [ecx*4 + str._.C]
xor dword [esi + eax], edx
mov ecx, dword [esi + eax]
inc edi
add eax, 4
mov dword [ebp - 0xc8], ecx
cmp edi, 0x10
jl 0x1007fed0
mov esi, dword [ebp - 0xb8]
mov edx, dword [ebp - 0xbc]
mov ecx, dword [ebp - 0xc0]
mov eax, dword [ebp - 0xc4]
xor ebx, ebx
mov dword [ebp - 0xc8], ebx
xor eax, dword [ebx*4 + str._.C]
mov edi, dword [ebp - 0xb4]
xor ecx, dword [eax*4 + str._.C]
mov ebx, dword [ebp - 0xb0]
xor edx, dword [ecx*4 + str._.C]
xor esi, dword [edx*4 + str._.C]
xor edi, dword [esi*4 + str._.C]
xor ebx, dword [edi*4 + str._.C]
mov dword [ebp - 0xb4], edi
mov edi, dword [ebp - 0xac]
xor edi, dword [ebx*4 + str._.C]
mov dword [ebp - 0xb0], ebx
mov ebx, dword [ebp - 0xa8]
xor ebx, dword [edi*4 + str._.C]
mov dword [ebp - 0xac], edi
mov edi, dword [ebp - 0xa4]
xor edi, dword [ebx*4 + str._.C]
mov dword [ebp - 0xa8], ebx
mov ebx, dword [ebp - 0xa0]
xor ebx, dword [edi*4 + str._.C]
mov dword [ebp - 0xa4], edi
mov edi, dword [ebp - 0x9c]
xor edi, dword [ebx*4 + str._.C]
mov dword [ebp - 0xa0], ebx
mov ebx, dword [ebp - 0x98]
xor ebx, dword [edi*4 + str._.C]
mov dword [ebp - 0x9c], edi
mov edi, dword [ebp - 0x94]
xor edi, dword [ebx*4 + str._.C]
mov dword [ebp - 0x98], ebx
mov ebx, dword [ebp - 0x90]
xor ebx, dword [edi*4 + str._.C]
mov dword [ebp - 0x94], edi
mov edi, dword [ebp - 0x8c]
xor edi, dword [ebx*4 + str._.C]
mov dword [ebp - 0x90], ebx
mov ebx, dword [ebp - 0x88]
xor ebx, dword [edi*4 + str._.C]
mov dword [ebp - 0x8c], edi
mov edi, dword [ebp - 0x84]
xor edi, dword [ebx*4 + str._.C]
mov dword [ebp - 0x88], ebx
mov ebx, dword [ebp - 0x80]
xor ebx, dword [edi*4 + str._.C]
mov dword [ebp - 0x84], edi
mov edi, dword [ebp - 0x7c]
xor edi, dword [ebx*4 + str._.C]
mov dword [ebp - 0x80], ebx
mov ebx, dword [ebp - 0x78]
xor ebx, dword [edi*4 + str._.C]
mov dword [ebp - 0x7c], edi
mov edi, dword [ebp - 0x74]
xor edi, dword [ebx*4 + str._.C]
mov dword [ebp - 0x78], ebx
mov ebx, dword [ebp - 0x70]
xor ebx, dword [edi*4 + str._.C]
mov dword [ebp - 0x74], edi
mov edi, dword [ebp - 0x6c]
xor edi, dword [ebx*4 + str._.C]
mov dword [ebp - 0x70], ebx
mov ebx, dword [ebp - 0x68]
xor ebx, dword [edi*4 + str._.C]
mov dword [ebp - 0x6c], edi
mov edi, dword [ebp - 0x64]
xor edi, dword [ebx*4 + str._.C]
mov dword [ebp - 0x68], ebx
mov ebx, dword [ebp - 0x60]
xor ebx, dword [edi*4 + str._.C]
mov dword [ebp - 0x64], edi
mov edi, dword [ebp - 0x5c]
xor edi, dword [ebx*4 + str._.C]
mov dword [ebp - 0x60], ebx
mov ebx, dword [ebp - 0x58]
xor ebx, dword [edi*4 + str._.C]
mov dword [ebp - 0x5c], edi
mov edi, dword [ebp - 0x54]
xor edi, dword [ebx*4 + str._.C]
mov dword [ebp - 0x58], ebx
mov ebx, dword [ebp - 0x50]
xor ebx, dword [edi*4 + str._.C]
mov dword [ebp - 0x54], edi
mov edi, dword [ebp - 0x4c]
xor edi, dword [ebx*4 + str._.C]
mov dword [ebp - 0x50], ebx
mov ebx, dword [ebp - 0x48]
xor ebx, dword [edi*4 + str._.C]
mov dword [ebp - 0x4c], edi
mov edi, dword [ebp - 0x44]
xor edi, dword [ebx*4 + str._.C]
mov dword [ebp - 0x48], ebx
mov ebx, dword [ebp - 0x40]
xor ebx, dword [edi*4 + str._.C]
mov dword [ebp - 0x44], edi
mov edi, dword [ebp - 0x3c]
xor edi, dword [ebx*4 + str._.C]
mov dword [ebp - 0x40], ebx
mov ebx, dword [ebp - 0x38]
xor ebx, dword [edi*4 + str._.C]
mov dword [ebp - 0x3c], edi
mov edi, dword [ebp - 0x34]
xor edi, dword [ebx*4 + str._.C]
mov dword [ebp - 0x38], ebx
mov ebx, dword [ebp - 0x30]
xor ebx, dword [edi*4 + str._.C]
mov dword [ebp - 0x34], edi
mov edi, dword [ebp - 0x2c]
xor edi, dword [ebx*4 + str._.C]
mov dword [ebp - 0x30], ebx
mov ebx, dword [ebp - 0x28]
xor ebx, dword [edi*4 + str._.C]
mov dword [ebp - 0x2c], edi
mov edi, dword [ebp - 0x24]
xor edi, dword [ebx*4 + str._.C]
mov dword [ebp - 0x28], ebx
mov ebx, dword [ebp - 0x20]
xor ebx, dword [edi*4 + str._.C]
mov dword [ebp - 0x24], edi
mov edi, dword [ebp - 0x1c]
xor edi, dword [ebx*4 + str._.C]
mov dword [ebp - 0x20], ebx
mov ebx, dword [ebp - 0x18]
xor ebx, dword [edi*4 + str._.C]
mov dword [ebp - 0x1c], edi
mov edi, dword [ebp - 0x14]
xor edi, dword [ebx*4 + str._.C]
mov dword [ebp - 0x18], ebx
mov ebx, dword [ebp - 0x10]
xor ebx, dword [edi*4 + str._.C]
mov dword [ebp - 0x14], edi
mov edi, dword [ebp - 0xc]
xor edi, dword [ebx*4 + str._.C]
mov dword [ebp - 0x10], ebx
mov ebx, dword [ebp - 8]
xor ebx, dword [edi*4 + str._.C]
mov dword [ebp - 0xc], edi
mov edi, dword [ebp - 0xc8]
mov dword [ebp - 8], ebx
add ebx, dword [ebp - 0xc8]
inc edi
and ebx, 0xff
mov dword [ebp - 0xc8], edi
cmp edi, 0x12
jl 0x1007ff33
mov edi, dword [ebp - 0xd0]
mov dword [ebp - 0xb8], esi
mov dword [ebp - 0xc0], ecx
mov ecx, 0x10
lea esi, [ebp - 0xc4]
mov dword [ebp - 0xbc], edx
mov dword [ebp - 0xc4], eax
rep movsd dword es:[edi], dword [esi]
pop edi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
pop esi
call fcn.1008600b
mov esp, ebp
pop ebp
ret