Function at 0x401570
Capabilities:
Encode data using xor

Disassembly:
push ebx
mov ebx, esp
sub esp, 8
and esp, 0xfffffff8
add esp, 4
push ebp
mov ebp, dword [ebx + 4]
mov dword [esp + 4], ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x4304a0
mov eax, dword fs:[0]
push eax
push ebx
sub esp, 0x6c
push esi
mov eax, dword [0x438040]
xor eax, ebp
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov esi, dword [0x4386c0]
lea eax, [ebp - 0x2c]
push eax
mov dword [ebp - 0x2c], 0x15
movups xmm0, xmmword [esi + 0x1740]
lea ecx, [esi + 0x1ce4]
movups xmmword [ebp - 0x28], xmm0
call fcn.00417040
mov dword [esi + 0x1740], 0x3dcccccd
lea eax, [ebp - 0x2c]
mov dword [esi + 0x1744], 0x3db851ec
mov dword [esi + 0x1748], 0x3df5c28f
mov dword [esi + 0x174c], 0x3f800000
mov esi, dword [0x4386c0]
push eax
mov dword [ebp - 0x2c], 0x16
movups xmm0, xmmword [esi + 0x1750]
lea ecx, [esi + 0x1ce4]
movups xmmword [ebp - 0x28], xmm0
call fcn.00417040
mov dword [esi + 0x1750], 0x3e75c28f
lea eax, [ebp - 0x2c]
mov dword [esi + 0x1754], 0x3e6b851f
mov dword [esi + 0x1758], 0x3e947ae1
mov dword [esi + 0x175c], 0x3f800000
mov esi, dword [0x4386c0]
push eax
mov dword [ebp - 0x2c], 0x17
movups xmm0, xmmword [esi + 0x1760]
lea ecx, [esi + 0x1ce4]
movups xmmword [ebp - 0x28], xmm0
call fcn.00417040
mov dword [esi + 0x1760], 0x3f0f5c29
lea eax, [ebp - 0x2c]
mov dword [esi + 0x1764], 0x3f0f5c29
mov dword [esi + 0x1768], 0x3f147ae1
mov dword [esi + 0x176c], 0x3f800000
mov esi, dword [0x4386c0]
push eax
mov dword [ebp - 0x2c], 0
movups xmm0, xmmword [esi + 0x15f0]
lea ecx, [esi + 0x1ce4]
movups xmmword [ebp - 0x28], xmm0
call fcn.00417040
mov dword [esi + 0x15f0], 0x3f4ccccd
lea eax, [ebp - 0x2c]
mov dword [esi + 0x15f4], 0x3f4ccccd
mov dword [esi + 0x15f8], 0x3f547ae1
mov dword [esi + 0x15fc], 0x3f800000
mov esi, dword [0x4386c0]
push eax
mov dword [ebp - 0x2c], 1
movups xmm0, xmmword [esi + 0x1600]
lea ecx, [esi + 0x1ce4]
movups xmmword [ebp - 0x28], xmm0
call fcn.00417040
mov dword [esi + 0x1600], 0x3e75c28f
lea eax, [ebp - 0x2c]
mov dword [esi + 0x1604], 0x3e6b851f
mov dword [esi + 0x1608], 0x3e947ae1
mov dword [esi + 0x160c], 0x3f800000
mov esi, dword [0x4386c0]
push eax
mov dword [ebp - 0x2c], 2
movups xmm0, xmmword [esi + 0x1610]
lea ecx, [esi + 0x1ce4]
movups xmmword [ebp - 0x28], xmm0
call fcn.00417040
mov dword [esi + 0x1610], 0x3d75c28f
lea eax, [ebp - 0x2c]
mov dword [esi + 0x1614], 0x3d4ccccd
mov dword [esi + 0x1618], 0x3d8f5c29
mov dword [esi + 0x161c], 0x3f800000
mov esi, dword [0x4386c0]
push eax
mov dword [ebp - 0x2c], 0xa
movups xmm0, xmmword [esi + 0x1690]
lea ecx, [esi + 0x1ce4]
movups xmmword [ebp - 0x28], xmm0
call fcn.00417040
mov dword [esi + 0x1690], 0x3dcccccd
mov dword [esi + 0x1694], 0x3db851ec
lea eax, [ebp - 0x2c]
mov dword [esi + 0x1698], 0x3df5c28f
mov dword [esi + 0x169c], 0x3f800000
mov esi, dword [0x4386c0]
push eax
mov dword [ebp - 0x2c], 0xc
movups xmm0, xmmword [esi + 0x16b0]
lea ecx, [esi + 0x1ce4]
movups xmmword [ebp - 0x28], xmm0
call fcn.00417040
mov dword [esi + 0x16b0], 0x3f800000
lea eax, [ebp - 0x2c]
mov dword [esi + 0x16b4], 0x3f7ae148
mov dword [esi + 0x16b8], 0x3f733333
mov dword [esi + 0x16bc], 0x3f400000
mov esi, dword [0x4386c0]
push eax
mov dword [ebp - 0x2c], 0xb
movups xmm0, xmmword [esi + 0x16a0]
lea ecx, [esi + 0x1ce4]
movups xmmword [ebp - 0x28], xmm0
call fcn.00417040
mov dword [esi + 0x16a0], 0x3d8f5c29
lea eax, [ebp - 0x2c]
mov dword [esi + 0x16a4], 0x3d8f5c29
mov dword [esi + 0x16a8], 0x3db851ec
mov dword [esi + 0x16ac], 0x3f800000
mov esi, dword [0x4386c0]
push eax
mov dword [ebp - 0x2c], 0xe
movups xmm0, xmmword [esi + 0x16d0]
lea ecx, [esi + 0x1ce4]
movups xmmword [ebp - 0x28], xmm0
call fcn.00417040
mov dword [esi + 0x16d0], 0x3dcccccd
lea eax, [ebp - 0x2c]
mov dword [esi + 0x16d4], 0x3db851ec
mov dword [esi + 0x16d8], 0x3df5c28f
mov dword [esi + 0x16dc], 0x3f800000
mov esi, dword [0x4386c0]
push eax
mov dword [ebp - 0x2c], 0xf
movups xmm0, xmmword [esi + 0x16e0]
lea ecx, [esi + 0x1ce4]
movups xmmword [ebp - 0x28], xmm0
call fcn.00417040
mov dword [esi + 0x16e0], 0x3f4ccccd
lea eax, [ebp - 0x2c]
mov dword [esi + 0x16e4], 0x3f4ccccd
mov dword [esi + 0x16e8], 0x3f547ae1
mov dword [esi + 0x16ec], 0x3e9eb852
mov esi, dword [0x4386c0]
push eax
mov dword [ebp - 0x2c], 0x10
movups xmm0, xmmword [esi + 0x16f0]
lea ecx, [esi + 0x1ce4]
movups xmmword [ebp - 0x28], xmm0
call fcn.00417040
mov dword [esi + 0x16f0], 0x3f0f5c29
lea eax, [ebp - 0x2c]
mov dword [esi + 0x16f4], 0x3f0f5c29
mov dword [esi + 0x16f8], 0x3f147ae1
mov dword [esi + 0x16fc], 0x3f800000
mov esi, dword [0x4386c0]
push eax
mov dword [ebp - 0x2c], 0x11
movups xmm0, xmmword [esi + 0x1700]
lea ecx, [esi + 0x1ce4]
movups xmmword [ebp - 0x28], xmm0
call fcn.00417040
mov dword [esi + 0x1700], 0x3d75c28f
lea eax, [ebp - 0x2c]
mov dword [esi + 0x1704], 0x3d4ccccd
mov dword [esi + 0x1708], 0x3d8f5c29
mov dword [esi + 0x170c], 0x3f800000
mov esi, dword [0x4386c0]
mov dword [ebp - 0x2c], 0x12
push eax
movups xmm0, xmmword [esi + 0x1710]
movups xmmword [ebp - 0x28], xmm0
lea ecx, [esi + 0x1ce4]
call fcn.00417040
mov dword [esi + 0x1710], 0x3f4ccccd
lea eax, [ebp - 0x2c]
mov dword [esi + 0x1714], 0x3f4ccccd
mov dword [esi + 0x1718], 0x3f547ae1
mov dword [esi + 0x171c], 0x3e9eb852
mov esi, dword [0x4386c0]
push eax
mov dword [ebp - 0x2c], 0x13
movups xmm0, xmmword [esi + 0x1720]
lea ecx, [esi + 0x1ce4]
movups xmmword [ebp - 0x28], xmm0
call fcn.00417040
mov dword [esi + 0x1720], 0x3f4ccccd
lea eax, [ebp - 0x2c]
mov dword [esi + 0x1724], 0x3f4ccccd
mov dword [esi + 0x1728], 0x3f547ae1
mov dword [esi + 0x172c], 0x3e9eb852
mov esi, dword [0x4386c0]
push eax
mov dword [ebp - 0x2c], 0x14
movups xmm0, xmmword [esi + 0x1730]
lea ecx, [esi + 0x1ce4]
movups xmmword [ebp - 0x28], xmm0
call fcn.00417040
mov dword [esi + 0x1730], 0x3d75c28f
lea eax, [ebp - 0x2c]
mov dword [esi + 0x1734], 0x3d4ccccd
mov dword [esi + 0x1738], 0x3d8f5c29
mov dword [esi + 0x173c], 0x3f800000
mov esi, dword [0x4386c0]
push eax
mov dword [ebp - 0x2c], 0x18
movups xmm0, xmmword [esi + 0x1770]
lea ecx, [esi + 0x1ce4]
movups xmmword [ebp - 0x28], xmm0
call fcn.00417040
mov dword [esi + 0x1770], 0x3dcccccd
lea eax, [ebp - 0x2c]
mov dword [esi + 0x1774], 0x3db851ec
mov dword [esi + 0x1778], 0x3df5c28f
mov dword [esi + 0x177c], 0x3f800000
mov esi, dword [0x4386c0]
push eax
mov dword [ebp - 0x2c], 0x19
movups xmm0, xmmword [esi + 0x1780]
lea ecx, [esi + 0x1ce4]
movups xmmword [ebp - 0x28], xmm0
call fcn.00417040
mov dword [esi + 0x1780], 0x3f0f5c29
lea eax, [ebp - 0x2c]
mov dword [esi + 0x1784], 0x3f0f5c29
mov dword [esi + 0x1788], 0x3f147ae1
mov dword [esi + 0x178c], 0x3f800000
mov esi, dword [0x4386c0]
push eax
mov dword [ebp - 0x2c], 0x1a
movups xmm0, xmmword [esi + 0x1790]
lea ecx, [esi + 0x1ce4]
movups xmmword [ebp - 0x28], xmm0
call fcn.00417040
mov dword [esi + 0x1790], 0x3d75c28f
lea eax, [ebp - 0x2c]
mov dword [esi + 0x1794], 0x3d4ccccd
mov dword [esi + 0x1798], 0x3d8f5c29
mov dword [esi + 0x179c], 0x3f800000
mov esi, dword [0x4386c0]
push eax
mov dword [ebp - 0x2c], 0x1b
movups xmm0, xmmword [esi + 0x17a0]
lea ecx, [esi + 0x1ce4]
movups xmmword [ebp - 0x28], xmm0
call fcn.00417040
mov dword [esi + 0x17a0], 0x3f0f5c29
mov dword [esi + 0x17a4], 0x3f0f5c29
mov dword [esi + 0x17a8], 0x3f147ae1
mov dword [esi + 0x17ac], 0x3f800000
mov esi, dword [0x4386c0]
mov dword [ebp - 0x2c], 0x1c
movups xmm0, xmmword [esi + 0x17b0]
lea eax, [ebp - 0x2c]
push eax
lea ecx, [esi + 0x1ce4]
movups xmmword [ebp - 0x28], xmm0
call fcn.00417040
mov dword [esi + 0x17b0], 0x3e75c28f
lea eax, [ebp - 0x2c]
mov dword [esi + 0x17b4], 0x3e6b851f
mov dword [esi + 0x17b8], 0x3e947ae1
mov dword [esi + 0x17bc], 0x3f800000
mov esi, dword [0x4386c0]
push eax
mov dword [ebp - 0x2c], 0x1d
movups xmm0, xmmword [esi + 0x17c0]
lea ecx, [esi + 0x1ce4]
movups xmmword [ebp - 0x28], xmm0
call fcn.00417040
mov dword [esi + 0x17c0], 0x3f0f5c29
lea eax, [ebp - 0x2c]
mov dword [esi + 0x17c4], 0x3f0f5c29
mov dword [esi + 0x17c8], 0x3f147ae1
mov dword [esi + 0x17cc], 0x3f800000
mov esi, dword [0x4386c0]
push eax
mov dword [ebp - 0x2c], 0x1e
movups xmm0, xmmword [esi + 0x17d0]
lea ecx, [esi + 0x1ce4]
movups xmmword [ebp - 0x28], xmm0
call fcn.00417040
mov dword [esi + 0x17d0], 0
lea eax, [ebp - 0x2c]
mov dword [esi + 0x17d4], 0
mov dword [esi + 0x17d8], 0
mov dword [esi + 0x17dc], 0
mov esi, dword [0x4386c0]
push eax
mov dword [ebp - 0x2c], 0x1f
movups xmm0, xmmword [esi + 0x17e0]
lea ecx, [esi + 0x1ce4]
movups xmmword [ebp - 0x28], xmm0
call fcn.00417040
mov dword [esi + 0x17e0], 0x3f0f5c29
lea eax, [ebp - 0x2c]
mov dword [esi + 0x17e4], 0x3f0f5c29
mov dword [esi + 0x17e8], 0x3f147ae1
mov dword [esi + 0x17ec], 0x3f800000
mov esi, dword [0x4386c0]
push eax
mov dword [ebp - 0x2c], 0x20
movups xmm0, xmmword [esi + 0x17f0]
lea ecx, [esi + 0x1ce4]
movups xmmword [ebp - 0x28], xmm0
call fcn.00417040
mov dword [esi + 0x17f0], 0x3d75c28f
lea eax, [ebp - 0x2c]
mov dword [esi + 0x17f4], 0x3d4ccccd
mov dword [esi + 0x17f8], 0x3d8f5c29
mov dword [esi + 0x17fc], 0x3f800000
mov esi, dword [0x4386c0]
push eax
mov dword [ebp - 0x2c], 0x26
movups xmm0, xmmword [esi + 0x1850]
lea ecx, [esi + 0x1ce4]
movups xmmword [ebp - 0x28], xmm0
call fcn.00417040
mov dword [esi + 0x1850], 0x3ecccccd
lea eax, [ebp - 0x2c]
mov dword [esi + 0x1854], 0x3ec7ae14
mov dword [esi + 0x1858], 0x3ec28f5c
mov dword [esi + 0x185c], 0x3f2147ae
mov esi, dword [0x4386c0]
push eax
mov dword [ebp - 0x2c], 0x27
movups xmm0, xmmword [esi + 0x1860]
lea ecx, [esi + 0x1ce4]
movups xmmword [ebp - 0x28], xmm0
call fcn.00417040
mov dword [esi + 0x1860], 0x3e800000
mov dword [esi + 0x1864], 0x3f800000
mov dword [esi + 0x1868], 0
mov dword [esi + 0x186c], 0x3f800000
mov esi, dword [0x4386c0]
lea eax, [ebp - 0x2c]
push eax
mov dword [ebp - 0x2c], 0x28
movups xmm0, xmmword [esi + 0x1870]
lea ecx, [esi + 0x1ce4]
movups xmmword [ebp - 0x28], xmm0
call fcn.00417040
mov dword [esi + 0x1870], 0x3ecccccd
lea eax, [ebp - 0x2c]
mov dword [esi + 0x1874], 0x3ec7ae14
mov dword [esi + 0x1878], 0x3ec28f5c
mov dword [esi + 0x187c], 0x3f2147ae
mov esi, dword [0x4386c0]
push eax
mov dword [ebp - 0x2c], 0x29
movups xmm0, xmmword [esi + 0x1880]
lea ecx, [esi + 0x1ce4]
movups xmmword [ebp - 0x28], xmm0
call fcn.00417040
mov dword [esi + 0x1880], 0x3e800000
lea eax, [ebp - 0x2c]
mov dword [esi + 0x1884], 0x3f800000
mov dword [esi + 0x1888], 0
mov dword [esi + 0x188c], 0x3f800000
mov esi, dword [0x4386c0]
push eax
mov dword [ebp - 0x2c], 0x2f
movups xmm0, xmmword [esi + 0x18e0]
lea ecx, [esi + 0x1ce4]
movups xmmword [ebp - 0x28], xmm0
call fcn.00417040
mov dword [esi + 0x18e0], 0x3e800000
lea eax, [ebp - 0x2c]
mov dword [esi + 0x18e4], 0x3f800000
mov dword [esi + 0x18e8], 0
mov dword [esi + 0x18ec], 0x3edc28f6
mov esi, dword [0x4386c0]
push eax
mov dword [ebp - 0x2c], 0x34
movups xmm0, xmmword [esi + 0x1930]
lea ecx, [esi + 0x1ce4]
movups xmmword [ebp - 0x28], xmm0
call fcn.00417040
mov dword [esi + 0x1930], 0x3f800000
lea eax, [ebp - 0x2c]
mov dword [esi + 0x1934], 0x3f7ae148
mov dword [esi + 0x1938], 0x3f733333
mov dword [esi + 0x193c], 0x3f3ae148
mov esi, dword [0x4386c0]
push eax
mov dword [ebp - 0x2c], 7
movups xmm0, xmmword [esi + 0x1660]
lea ecx, [esi + 0x1ce4]
movups xmmword [ebp - 0x28], xmm0
call fcn.00417040
mov dword [esi + 0x1660], 0x3e4ccccd
lea eax, [ebp - 0x2c]
mov dword [esi + 0x1664], 0x3e4ccccd
mov dword [esi + 0x1668], 0x3e800000
mov dword [esi + 0x166c], 0x3f800000
mov esi, dword [0x4386c0]
push eax
mov dword [ebp - 0x2c], 8
movups xmm0, xmmword [esi + 0x1670]
lea ecx, [esi + 0x1ce4]
movups xmmword [ebp - 0x28], xmm0
call fcn.00417040
mov dword [esi + 0x1670], 0x3e800000
lea eax, [ebp - 0x2c]
mov dword [esi + 0x1674], 0x3e800000
mov dword [esi + 0x1678], 0x3e99999a
mov dword [esi + 0x167c], 0x3f800000
mov esi, dword [0x4386c0]
push eax
mov dword [ebp - 0x2c], 9
movups xmm0, xmmword [esi + 0x1680]
lea ecx, [esi + 0x1ce4]
movups xmmword [ebp - 0x28], xmm0
call fcn.00417040
mov dword [esi + 0x1680], 0x3e99999a
mov dword [esi + 0x1684], 0x3e99999a
mov edx, 0x43809c
mov dword [esi + 0x1688], 0x3eb33333
mov ecx, str.CrackME_ALPHA
mov dword [esi + 0x168c], 0x3f800000
mov eax, dword [0x4386c0]
push 0x126
or dword [eax + 0x1c84], 3
mov dword [eax + 0x1c94], 0
mov dword [eax + 0x1c98], 0
mov dword [eax + 0x1c9c], 0
mov dword [eax + 0x1ca0], 0
mov dword [eax + 0x1c88], 1
mov dword [eax + 0x1ca4], 0x43220000
mov dword [eax + 0x1ca8], 0x42f00000
mov dword [eax + 0x1c8c], 1
call fcn.0040dbc0
add esp, 4
mov dword [ebp - 0x18], 0xe4a577a
mov word [ebp - 0x14], pe_nt_image_headers32
xor ecx, ecx
nop word [eax + eax]
mov al, cl
add al, 0x31
xor byte [ebp + ecx - 0x18], al
inc ecx
cmp ecx, 4
jb 0x4020b0
lea eax, [ebp - 0x18]
mov byte [ebp - 0x13], 0
push eax
call fcn.004299d0
add esp, 4
mov dword [ebp - 0x18], 0
lea eax, [ebp - 0x18]
mov dword [ebp - 0x14], 0
xor edx, edx
mov ecx, 0x43131a
push 0
push 0
push 0x8038
push eax
push pe_nt_image_headers32
push 0x4386e8
call fcn.0042c920
add esp, 0x14
mov dword [ebp - 0x18], 0
lea edx, [ebp - 0x18]
mov dword [ebp - 0x14], 0
call fcn.0042a0e0
add esp, 4
test al, al
je 0x4021bb
movaps xmm0, xmmword [0x435c80]
xor ecx, ecx
movups xmmword [ebp - 0x7c], xmm0
mov dword [ebp - 0x4c], 0x575454
movaps xmm0, xmmword [0x435db0]
movups xmmword [ebp - 0x6c], xmm0
mov byte [ebp - 0x48], 1
movaps xmm0, xmmword [0x435c30]
movups xmmword [ebp - 0x5c], xmm0
mov al, cl
add al, 0x31
xor byte [ebp + ecx - 0x7c], al
inc ecx
cmp ecx, 0x33
jb 0x402151
mov byte [ebp - 0x48], 0
lea ecx, [ebp - 0x7c]
mov eax, 0x4386e8
nop dword [eax + eax]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x402190
test dl, dl
je 0x40218c
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x402190
add eax, 2
add ecx, 2
test dl, dl
jne 0x402170
xor eax, eax
jmp 0x402195
sbb eax, eax
or eax, 1
test eax, eax
jne 0x4021a7
push 0x40
push str.CrackME_ALPHA
push str.Cracked_nIve_Never_Found_It_Hard_To_Hack_Most_People.
jmp 0x4021b3
push 0x10
push str.CrackME_ALPHA
push str.Maybe_Wars_Arent_Meant_To_Be_Won__nMaybe_Theyre_Meant_To_Be_Continuous.
push 0
call dword [sym.imp.USER32.dll_MessageBoxA]
movaps xmm0, xmmword [str.SWQ]
xor ecx, ecx
movups xmmword [ebp - 0x44], xmm0
mov dword [ebp - 0x34], 0xa6238
mov word [ebp - 0x30], 4
mov byte [ebp - 0x2e], 1
nop dword [eax]
mov al, cl
add al, 0x31
xor byte [ebp + ecx - 0x44], al
inc ecx
cmp ecx, 0x15
jb 0x4021e0
lea eax, [ebp - 0x44]
mov byte [ebp - 0x2e], 0
push eax
call fcn.004299d0
add esp, 4
call fcn.00410560
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop esi
mov esp, ebp
pop ebp
mov esp, ebx
pop ebx
ret