Function at 0x1002ec40
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x28
movaps xmm0, xmmword [0x10110f20]
movd eax, xmm0
movups xmmword [ebp - 0x24], xmm0
push esi
movups xmm1, xmmword [0x10129130]
mov esi, ecx
mov dword [ebp - 0x14], 0xd1d5c9
mov byte [ebp - 0x10], 1
mov ecx, 0x10
movd xmm0, eax
punpcklbw xmm0, xmm0
punpcklwd xmm0, xmm0
psrad xmm0, 0x18
xorps xmm0, xmmword [0x10110f40]
andps xmm0, xmm1
packuswb xmm0, xmm0
packuswb xmm0, xmm0
movd dword [ebp - 0x24], xmm0
movd xmm0, dword [ebp - 0x20]
punpcklbw xmm0, xmm0
punpcklwd xmm0, xmm0
psrad xmm0, 0x18
xorps xmm0, xmmword [0x10110f50]
andps xmm0, xmm1
packuswb xmm0, xmm0
packuswb xmm0, xmm0
movd dword [ebp - 0x20], xmm0
movd xmm0, dword [ebp - 0x1c]
punpcklbw xmm0, xmm0
punpcklwd xmm0, xmm0
psrad xmm0, 0x18
xorps xmm0, xmmword [0x10110f60]
andps xmm0, xmm1
packuswb xmm0, xmm0
packuswb xmm0, xmm0
movd dword [ebp - 0x1c], xmm0
movd xmm0, dword [ebp - 0x18]
punpcklbw xmm0, xmm0
punpcklwd xmm0, xmm0
psrad xmm0, 0x18
xorps xmm0, xmmword [0x10110f70]
andps xmm0, xmm1
packuswb xmm0, xmm0
packuswb xmm0, xmm0
movd dword [ebp - 0x18], xmm0
lea eax, [ecx - 0x6a]
xor byte [ebp + ecx - 0x24], al
inc ecx
cmp ecx, 0x13
jb 0x1002ed12
mov byte [ebp - 0x10], 0
xor ecx, ecx
mov dword [ebp - 0xc], 0xf5fce3f8
mov dword [ebp - 8], 0xf1f8b5f6
mov word [ebp - 4], 0xf2
mov byte [ebp - 2], 1
nop dword [eax]
lea eax, [ecx - 0x6a]
xor byte [ebp + ecx - 0xc], al
inc ecx
cmp ecx, 9
jb 0x1002ed40
push edi
mov edi, dword [sym.imp.KERNEL32.dll_GetModuleHandleA]
lea eax, [ebp - 0xc]
push eax
mov byte [ebp - 2], 0
call edi
lea ecx, [ebp - 0x24]
push ecx
push eax
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
movaps xmm0, xmmword [0x10110f00]
mov ecx, 0x10
movups xmmword [ebp - 0x28], xmm0
mov dword [esi + 8], eax
movd eax, xmm0
movups xmm1, xmmword [0x10129130]
mov dword [ebp - 0x18], 0xd0dac8cb
mov word [ebp - 0x14], 0x100
movd xmm0, eax
punpcklbw xmm0, xmm0
punpcklwd xmm0, xmm0
psrad xmm0, 0x18
xorps xmm0, xmmword [0x10110f40]
andps xmm0, xmm1
packuswb xmm0, xmm0
packuswb xmm0, xmm0
movd dword [ebp - 0x28], xmm0
movd xmm0, dword [ebp - 0x24]
punpcklbw xmm0, xmm0
punpcklwd xmm0, xmm0
psrad xmm0, 0x18
xorps xmm0, xmmword [0x10110f50]
andps xmm0, xmm1
packuswb xmm0, xmm0
packuswb xmm0, xmm0
movd dword [ebp - 0x24], xmm0
movd xmm0, dword [ebp - 0x20]
punpcklbw xmm0, xmm0
punpcklwd xmm0, xmm0
psrad xmm0, 0x18
xorps xmm0, xmmword [0x10110f60]
andps xmm0, xmm1
packuswb xmm0, xmm0
packuswb xmm0, xmm0
movd dword [ebp - 0x20], xmm0
movd xmm0, dword [ebp - 0x1c]
punpcklbw xmm0, xmm0
punpcklwd xmm0, xmm0
psrad xmm0, 0x18
xorps xmm0, xmmword [0x10110f70]
andps xmm0, xmm1
packuswb xmm0, xmm0
packuswb xmm0, xmm0
movd dword [ebp - 0x1c], xmm0
lea eax, [ecx - 0x6a]
xor byte [ebp + ecx - 0x28], al
inc ecx
cmp ecx, 0x14
jb 0x1002ee37
mov byte [ebp - 0x13], 0
xor ecx, ecx
mov dword [ebp - 0xc], 0xf5fce3f8
mov dword [ebp - 8], 0xf1f8b5f6
mov word [ebp - 4], 0xf2
mov byte [ebp - 2], 1
lea eax, [ecx - 0x6a]
xor byte [ebp + ecx - 0xc], al
inc ecx
cmp ecx, 9
jb 0x1002ee62
lea eax, [ebp - 0xc]
mov byte [ebp - 2], 0
push eax
call edi
lea ecx, [ebp - 0x28]
push ecx
push eax
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
movaps xmm0, xmmword [0x10110f30]
mov ecx, 0x10
movups xmmword [ebp - 0x28], xmm0
mov dword [esi + 0xc], eax
movd eax, xmm0
movups xmm1, xmmword [0x10129130]
mov dword [ebp - 0x18], 0xc6c5c2eb
mov dword [ebp - 0x14], 0x100d2d8
movd xmm0, eax
punpcklbw xmm0, xmm0
punpcklwd xmm0, xmm0
psrad xmm0, 0x18
xorps xmm0, xmmword [0x10110f40]
andps xmm0, xmm1
packuswb xmm0, xmm0
packuswb xmm0, xmm0
movd dword [ebp - 0x28], xmm0
movd xmm0, dword [ebp - 0x24]
punpcklbw xmm0, xmm0
punpcklwd xmm0, xmm0
psrad xmm0, 0x18
xorps xmm0, xmmword [0x10110f50]
andps xmm0, xmm1
packuswb xmm0, xmm0
packuswb xmm0, xmm0
movd dword [ebp - 0x24], xmm0
movd xmm0, dword [ebp - 0x20]
punpcklbw xmm0, xmm0
punpcklwd xmm0, xmm0
psrad xmm0, 0x18
xorps xmm0, xmmword [0x10110f60]
andps xmm0, xmm1
packuswb xmm0, xmm0
packuswb xmm0, xmm0
movd dword [ebp - 0x20], xmm0
movd xmm0, dword [ebp - 0x1c]
punpcklbw xmm0, xmm0
punpcklwd xmm0, xmm0
psrad xmm0, 0x18
xorps xmm0, xmmword [0x10110f70]
andps xmm0, xmm1
packuswb xmm0, xmm0
packuswb xmm0, xmm0
movd dword [ebp - 0x1c], xmm0
lea eax, [ecx - 0x6a]
xor byte [ebp + ecx - 0x28], al
inc ecx
cmp ecx, 0x16
jb 0x1002ef53
mov byte [ebp - 0x11], 0
xor ecx, ecx
mov dword [ebp - 0xc], 0xf5fce3f8
mov dword [ebp - 8], 0xf1f8b5f6
mov word [ebp - 4], 0xf2
mov byte [ebp - 2], 1
nop
lea eax, [ecx - 0x6a]
xor byte [ebp + ecx - 0xc], al
inc ecx
cmp ecx, 9
jb 0x1002ef80
lea eax, [ebp - 0xc]
mov byte [ebp - 2], 0
push eax
call edi
lea ecx, [ebp - 0x28]
push ecx
push eax
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
movaps xmm0, xmmword [0x10110f10]
mov ecx, 0x10
movups xmmword [ebp - 0x28], xmm0
mov dword [esi + 0x14], eax
movd eax, xmm0
movups xmm1, xmmword [0x10129130]
mov dword [ebp - 0x18], 0xc4cdeaca
mov dword [ebp - 0x14], 0xd5d9c5
mov byte [ebp - 0x10], 1
movd xmm0, eax
punpcklbw xmm0, xmm0
punpcklwd xmm0, xmm0
psrad xmm0, 0x18
xorps xmm0, xmmword [0x10110f40]
andps xmm0, xmm1
packuswb xmm0, xmm0
packuswb xmm0, xmm0
movd dword [ebp - 0x28], xmm0
movd xmm0, dword [ebp - 0x24]
punpcklbw xmm0, xmm0
punpcklwd xmm0, xmm0
psrad xmm0, 0x18
xorps xmm0, xmmword [0x10110f50]
andps xmm0, xmm1
packuswb xmm0, xmm0
packuswb xmm0, xmm0
movd dword [ebp - 0x24], xmm0
movd xmm0, dword [ebp - 0x20]
punpcklbw xmm0, xmm0
punpcklwd xmm0, xmm0
psrad xmm0, 0x18
xorps xmm0, xmmword [0x10110f60]
andps xmm0, xmm1
packuswb xmm0, xmm0
packuswb xmm0, xmm0
movd dword [ebp - 0x20], xmm0
movd xmm0, dword [ebp - 0x1c]
punpcklbw xmm0, xmm0
punpcklwd xmm0, xmm0
psrad xmm0, 0x18
xorps xmm0, xmmword [0x10110f70]
andps xmm0, xmm1
packuswb xmm0, xmm0
packuswb xmm0, xmm0
movd dword [ebp - 0x1c], xmm0
lea eax, [ecx - 0x6a]
xor byte [ebp + ecx - 0x28], al
inc ecx
cmp ecx, 0x17
jb 0x1002f075
mov byte [ebp - 0x10], 0
xor eax, eax
mov dword [ebp - 0xc], 0xf5fce3f8
mov dword [ebp - 8], 0xf1f8b5f6
mov word [ebp - 4], 0xf2
mov byte [ebp - 2], 1
lea ecx, [eax - 0x6a]
xor byte [ebp + eax - 0xc], cl
inc eax
cmp eax, 9
jb 0x1002f0a0
lea eax, [ebp - 0xc]
mov byte [ebp - 2], 0
push eax
call edi
lea ecx, [ebp - 0x28]
push ecx
push eax
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov dword [esi + 0x10], eax
pop edi
test eax, eax
je 0x1002f0e2
cmp dword [esi + 0x14], 0
je 0x1002f0e2
cmp dword [esi + 8], 0
je 0x1002f0e2
cmp dword [esi + 0xc], 0
pop esi
setne al
mov esp, ebp
pop ebp
ret
xor al, al
pop esi
mov esp, ebp
pop ebp
ret