Function at 0x10002fa0
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x304
mov eax, dword [0x10008004]
xor eax, ebp
mov dword [ebp - 4], eax
push ebx
push esi
push edi
jmp 0x10002fc8
jmp 0x10002fda
jmp 0x10002fec
jmp 0x10002ffe
jmp 0x10003010
jmp 0x10003022
jmp 0x10003034
jmp 0x10003046
jmp 0x10003058
jmp 0x1000306a
jmp 0x1000307c
jmp 0x1000308e
jmp 0x100030a0
jmp 0x100030b2
jmp 0x100030c4
jmp 0x100030d6
jmp 0x100030e8
jmp 0x100030fa
jmp 0x1000310c
jmp 0x1000311e
call fcn.10001d90
lea eax, [ebp - 0x298]
push eax
call dword [sym.imp.ADVAPI32.dll_GetCurrentHwProfileA]
test eax, eax
je 0x1000334b
call fcn.10001d90
movaps xmm0, xmmword [0x100067c0]
xor ecx, ecx
movups xmmword [ebp - 0x300], xmm0
mov dword [ebp - 0x2b0], 0x683e26
movaps xmm0, xmmword [0x10006650]
movups xmmword [ebp - 0x2f0], xmm0
movaps xmm0, xmmword [0x10006750]
movups xmmword [ebp - 0x2e0], xmm0
movaps xmm0, xmmword [0x100067a0]
movups xmmword [ebp - 0x2d0], xmm0
movaps xmm0, xmmword [0x10006770]
movups xmmword [ebp - 0x2c0], xmm0
nop
mov al, byte [ebp - 0x300]
xor byte [ebp + ecx - 0x2ff], al
inc ecx
cmp ecx, 0x52
jb 0x10003190
lea eax, [ebp - 0x294]
mov byte [ebp - 0x2ad], 0
push eax
push ecx
call fcn.10001940
add esp, 4
push eax
lea eax, [ebp - 0x2ff]
push eax
lea eax, [ebp - 0x110]
push eax
call fcn.10004f40
push 0xff
lea edx, [ebp - 0x218]
lea ecx, [ebp - 0x110]
call fcn.10002180
add esp, 0x14
test eax, eax
je 0x1000334b
mov bh, 0x2d
mov byte [ebp - 0x29c], 0
mov dl, 0x4e
mov byte [ebp - 0x2a4], bh
mov ch, 0x5e
mov byte [ebp - 0x29c], 0
mov al, 0x7e
mov cl, 0x58
mov bl, dl
mov ah, 0x48
mov dh, ch
xor al, bh
xor cl, bh
mov byte [ebp - 0x2a3], al
xor ah, bh
mov byte [ebp - 0x2a2], cl
xor ch, bh
mov byte [ebp - 0x29f], ah
xor dl, bh
mov byte [ebp - 0x29e], ch
xor bl, bh
mov byte [ebp - 0x2a1], dl
xor dh, bh
mov byte [ebp - 0x2a0], bl
mov byte [ebp - 0x29d], dh
lea ecx, [ebp - 0x2a3]
lea eax, [ebp - 0x218]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x10003277
test dl, dl
je 0x10003273
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x10003277
add eax, 2
add ecx, 2
test dl, dl
jne 0x10003257
xor eax, eax
jmp 0x1000327c
sbb eax, eax
or eax, 1
test eax, eax
jne 0x1000334b
call fcn.10001d90
movaps xmm0, xmmword [0x10006550]
xor ecx, ecx
movups xmmword [ebp - 0x300], xmm0
mov dword [ebp - 0x2b0], 0x5a0c14
movaps xmm0, xmmword [0x10006740]
movups xmmword [ebp - 0x2f0], xmm0
movaps xmm0, xmmword [0x10006660]
movups xmmword [ebp - 0x2e0], xmm0
movaps xmm0, xmmword [0x100065d0]
movups xmmword [ebp - 0x2d0], xmm0
movaps xmm0, xmmword [0x100066c0]
movups xmmword [ebp - 0x2c0], xmm0
nop dword [eax + eax]
mov al, byte [ebp - 0x300]
xor byte [ebp + ecx - 0x2ff], al
inc ecx
cmp ecx, 0x52
jb 0x100032e0
push 0x10008440
push ecx
mov byte [ebp - 0x2ad], 0
call fcn.10001940
add esp, 4
push eax
lea eax, [ebp - 0x2ff]
push eax
lea eax, [ebp - 0x110]
push eax
call fcn.10004f40
push 0xff
lea edx, [ebp - 0x218]
lea ecx, [ebp - 0x110]
call fcn.10002180
push ecx
lea eax, [ebp - 0x294]
mov ecx, esp
push eax
call fcn.10004e30
mov cl, 1
call fcn.10002550
add esp, 0x18
jmp 0x1000335d
jmp 0x1000336f
jmp 0x10003381
jmp 0x10003393
jmp 0x100033a5
jmp 0x100033b7
jmp 0x100033c9
jmp 0x100033db
jmp 0x100033ed
jmp 0x100033ff
jmp 0x10003411
jmp 0x10003423
jmp 0x10003435
jmp 0x10003447
jmp 0x10003459
jmp 0x1000346b
jmp 0x1000347d
jmp 0x1000348f
jmp 0x100034a1
mov ecx, dword [ebp - 4]
xor ecx, ebp
pop edi
pop esi
pop ebx
call fcn.10004f58
mov esp, ebp
pop ebp
ret