Function at 0x10049810
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x28
movaps xmm0, xmmword [0x101ccf70]
movd eax, xmm0
movups xmmword [ebp - 0x24], xmm0
push esi
movups xmm1, xmmword [0x103f77d0]
mov esi, ecx
mov dword [ebp - 0x14], 0xa2a8b6
mov byte [ebp - 0x10], 1
mov ecx, 0x10
movd xmm0, eax
punpcklbw xmm0, xmm0
punpcklwd xmm0, xmm0
psrad xmm0, 0x18
xorps xmm0, xmmword [0x101ccfa0]
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 [0x101ccfb0]
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 [0x101ccfc0]
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 [0x101ccfd0]
andps xmm0, xmm1
packuswb xmm0, xmm0
packuswb xmm0, xmm0
movd dword [ebp - 0x18], xmm0
lea eax, [ecx - 0x37]
xor byte [ebp + ecx - 0x24], al
inc ecx
cmp ecx, 0x13
jb 0x100498e2
mov byte [ebp - 0x10], 0
xor ecx, ecx
mov dword [ebp - 0xc], 0xa0afbea7
mov dword [ebp - 8], 0xbcabe0a1
mov word [ebp - 4], 0xbd
mov byte [ebp - 2], 1
nop dword [eax]
lea eax, [ecx - 0x37]
xor byte [ebp + ecx - 0xc], al
inc ecx
cmp ecx, 9
jb 0x10049910
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 [0x101ccf90]
mov ecx, 0x10
movups xmmword [ebp - 0x28], xmm0
mov dword [esi + 8], eax
movd eax, xmm0
movups xmm1, xmmword [0x103f77d0]
mov dword [ebp - 0x18], 0xa5a9b5b4
mov word [ebp - 0x14], 0x100
movd xmm0, eax
punpcklbw xmm0, xmm0
punpcklwd xmm0, xmm0
psrad xmm0, 0x18
xorps xmm0, xmmword [0x101ccfa0]
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 [0x101ccfb0]
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 [0x101ccfc0]
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 [0x101ccfd0]
andps xmm0, xmm1
packuswb xmm0, xmm0
packuswb xmm0, xmm0
movd dword [ebp - 0x1c], xmm0
lea eax, [ecx - 0x37]
xor byte [ebp + ecx - 0x28], al
inc ecx
cmp ecx, 0x14
jb 0x10049a07
mov byte [ebp - 0x13], 0
xor ecx, ecx
mov dword [ebp - 0xc], 0xa0afbea7
mov dword [ebp - 8], 0xbcabe0a1
mov word [ebp - 4], 0xbd
mov byte [ebp - 2], 1
lea eax, [ecx - 0x37]
xor byte [ebp + ecx - 0xc], al
inc ecx
cmp ecx, 9
jb 0x10049a32
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 [0x101ccf60]
mov ecx, 0x10
movups xmmword [ebp - 0x28], xmm0
mov dword [esi + 0xc], eax
movd eax, xmm0
movups xmm1, xmmword [0x103f77d0]
mov dword [ebp - 0x18], 0xb3b6bf94
mov dword [ebp - 0x14], 0x100a7af
movd xmm0, eax
punpcklbw xmm0, xmm0
punpcklwd xmm0, xmm0
psrad xmm0, 0x18
xorps xmm0, xmmword [0x101ccfa0]
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 [0x101ccfb0]
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 [0x101ccfc0]
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 [0x101ccfd0]
andps xmm0, xmm1
packuswb xmm0, xmm0
packuswb xmm0, xmm0
movd dword [ebp - 0x1c], xmm0
lea eax, [ecx - 0x37]
xor byte [ebp + ecx - 0x28], al
inc ecx
cmp ecx, 0x16
jb 0x10049b23
mov byte [ebp - 0x11], 0
xor ecx, ecx
mov dword [ebp - 0xc], 0xa0afbea7
mov dword [ebp - 8], 0xbcabe0a1
mov word [ebp - 4], 0xbd
mov byte [ebp - 2], 1
nop
lea eax, [ecx - 0x37]
xor byte [ebp + ecx - 0xc], al
inc ecx
cmp ecx, 9
jb 0x10049b50
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 [0x101ccf80]
mov ecx, 0x10
movups xmmword [ebp - 0x28], xmm0
mov dword [esi + 0x14], eax
movd eax, xmm0
movups xmm1, xmmword [0x103f77d0]
mov dword [ebp - 0x18], 0xb1be97b5
mov dword [ebp - 0x14], 0xa6acb2
mov byte [ebp - 0x10], 1
movd xmm0, eax
punpcklbw xmm0, xmm0
punpcklwd xmm0, xmm0
psrad xmm0, 0x18
xorps xmm0, xmmword [0x101ccfa0]
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 [0x101ccfb0]
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 [0x101ccfc0]
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 [0x101ccfd0]
andps xmm0, xmm1
packuswb xmm0, xmm0
packuswb xmm0, xmm0
movd dword [ebp - 0x1c], xmm0
lea eax, [ecx - 0x37]
xor byte [ebp + ecx - 0x28], al
inc ecx
cmp ecx, 0x17
jb 0x10049c45
mov byte [ebp - 0x10], 0
xor eax, eax
mov dword [ebp - 0xc], 0xa0afbea7
mov dword [ebp - 8], 0xbcabe0a1
mov word [ebp - 4], 0xbd
mov byte [ebp - 2], 1
lea ecx, [eax - 0x37]
xor byte [ebp + eax - 0xc], cl
inc eax
cmp eax, 9
jb 0x10049c70
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 0x10049cb2
cmp dword [esi + 0x14], 0
je 0x10049cb2
cmp dword [esi + 8], 0
je 0x10049cb2
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