Function at 0x1002c810
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x28
movaps xmm0, xmmword [0x10108c30]
movd eax, xmm0
movups xmmword [ebp - 0x24], xmm0
push esi
movups xmm1, xmmword [0x10120a00]
mov esi, ecx
mov dword [ebp - 0x14], 0xf5f9e5
mov byte [ebp - 0x10], 1
mov ecx, 0x10
movd xmm0, eax
punpcklbw xmm0, xmm0
punpcklwd xmm0, xmm0
psrad xmm0, 0x18
xorps xmm0, xmmword [str.z]
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 [0x10108c00]
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 [0x10108c10]
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 [0x10108c20]
andps xmm0, xmm1
packuswb xmm0, xmm0
packuswb xmm0, xmm0
movd dword [ebp - 0x18], xmm0
lea eax, [ecx + 0x7a]
xor byte [ebp + ecx - 0x24], al
inc ecx
cmp ecx, 0x13
jb 0x1002c8e2
mov byte [ebp - 0x10], 0
xor ecx, ecx
mov dword [ebp - 0xc], 0x11180f14
mov dword [ebp - 8], 0xede45112
mov word [ebp - 4], 0xee
mov byte [ebp - 2], 1
nop dword [eax]
lea eax, [ecx + 0x7a]
xor byte [ebp + ecx - 0xc], al
inc ecx
cmp ecx, 9
jb 0x1002c910
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 [0x10108c60]
mov ecx, 0x10
movups xmmword [ebp - 0x28], xmm0
mov dword [esi + 8], eax
movd eax, xmm0
movups xmm1, xmmword [0x10120a00]
mov dword [ebp - 0x18], 0xf4fee4e7
mov word [ebp - 0x14], 0x100
movd xmm0, eax
punpcklbw xmm0, xmm0
punpcklwd xmm0, xmm0
psrad xmm0, 0x18
xorps xmm0, xmmword [str.z]
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 [0x10108c00]
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 [0x10108c10]
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 [0x10108c20]
andps xmm0, xmm1
packuswb xmm0, xmm0
packuswb xmm0, xmm0
movd dword [ebp - 0x1c], xmm0
lea eax, [ecx + 0x7a]
xor byte [ebp + ecx - 0x28], al
inc ecx
cmp ecx, 0x14
jb 0x1002ca07
mov byte [ebp - 0x13], 0
xor ecx, ecx
mov dword [ebp - 0xc], 0x11180f14
mov dword [ebp - 8], 0xede45112
mov word [ebp - 4], 0xee
mov byte [ebp - 2], 1
lea eax, [ecx + 0x7a]
xor byte [ebp + ecx - 0xc], al
inc ecx
cmp ecx, 9
jb 0x1002ca32
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 [0x10108c40]
mov ecx, 0x10
movups xmmword [ebp - 0x28], xmm0
mov dword [esi + 0xc], eax
movd eax, xmm0
movups xmm1, xmmword [0x10120a00]
mov dword [ebp - 0x18], 0xe2e1eec7
mov dword [ebp - 0x14], 0x100f6fc
movd xmm0, eax
punpcklbw xmm0, xmm0
punpcklwd xmm0, xmm0
psrad xmm0, 0x18
xorps xmm0, xmmword [str.z]
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 [0x10108c00]
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 [0x10108c10]
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 [0x10108c20]
andps xmm0, xmm1
packuswb xmm0, xmm0
packuswb xmm0, xmm0
movd dword [ebp - 0x1c], xmm0
lea eax, [ecx + 0x7a]
xor byte [ebp + ecx - 0x28], al
inc ecx
cmp ecx, 0x16
jb 0x1002cb23
mov byte [ebp - 0x11], 0
xor ecx, ecx
mov dword [ebp - 0xc], 0x11180f14
mov dword [ebp - 8], 0xede45112
mov word [ebp - 4], 0xee
mov byte [ebp - 2], 1
nop
lea eax, [ecx + 0x7a]
xor byte [ebp + ecx - 0xc], al
inc ecx
cmp ecx, 9
jb 0x1002cb50
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 [0x10108c50]
mov ecx, 0x10
movups xmmword [ebp - 0x28], xmm0
mov dword [esi + 0x14], eax
movd eax, xmm0
movups xmm1, xmmword [0x10120a00]
mov dword [ebp - 0x18], 0xe0e9c6e6
mov dword [ebp - 0x14], 0xe9fde1
mov byte [ebp - 0x10], 1
movd xmm0, eax
punpcklbw xmm0, xmm0
punpcklwd xmm0, xmm0
psrad xmm0, 0x18
xorps xmm0, xmmword [str.z]
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 [0x10108c00]
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 [0x10108c10]
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 [0x10108c20]
andps xmm0, xmm1
packuswb xmm0, xmm0
packuswb xmm0, xmm0
movd dword [ebp - 0x1c], xmm0
lea eax, [ecx + 0x7a]
xor byte [ebp + ecx - 0x28], al
inc ecx
cmp ecx, 0x17
jb 0x1002cc45
mov byte [ebp - 0x10], 0
xor eax, eax
mov dword [ebp - 0xc], 0x11180f14
mov dword [ebp - 8], 0xede45112
mov word [ebp - 4], 0xee
mov byte [ebp - 2], 1
lea ecx, [eax + 0x7a]
xor byte [ebp + eax - 0xc], cl
inc eax
cmp eax, 9
jb 0x1002cc70
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 0x1002ccb2
cmp dword [esi + 0x14], 0
je 0x1002ccb2
cmp dword [esi + 8], 0
je 0x1002ccb2
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