Function at 0x403470
Capabilities:
Encode data using xor

Disassembly:
push ebx
push edi
push esi
mov ecx, dword [esp + 0x18]
mov edx, dword [esp + 0x10]
mov eax, dword [0x458040]
test eax, eax
jne 0x404053
movaps xmm0, xmmword [0x4485f0]
xorps xmm0, xmmword [0x444910]
movaps xmmword [0x4489f0], xmm0
mov eax, 0x6c2bdfcd
xor eax, dword [0x448600]
mov dword [0x448a00], eax
mov eax, dword [0x448604]
lea esi, [eax + eax]
and esi, 0x74702688
neg esi
add eax, esi
add eax, 0x3a381344
mov dword [0x448a04], eax
movups xmm0, xmmword [0x448608]
xorps xmm0, xmmword [0x444920]
movups xmmword [0x448a08], xmm0
movups xmm0, xmmword [0x448618]
xorps xmm0, xmmword [0x444930]
movups xmmword [0x448a18], xmm0
movsd xmm0, qword [0x448628]
xorps xmm0, xmmword [0x444940]
movlps qword [0x448a28], xmm0
mov eax, 0x29bd30f6
xor eax, dword [0x448630]
mov dword [0x448a30], eax
mov eax, dword [0x448634]
mov esi, eax
not esi
or eax, 0x78f1f910
or esi, 0x870e06ef
and esi, eax
not esi
mov dword [0x448a34], esi
movsd xmm0, qword [str.laz]
xorps xmm0, xmmword [0x444950]
movlps qword [0x448a38], xmm0
mov eax, dword [0x448640]
lea esi, [eax + eax]
and esi, 0xa5d224dc
neg esi
add eax, esi
add eax, 0x52e9126e
mov dword [0x448a40], eax
mov eax, 0xe85af96c
xor eax, dword [0x448644]
mov dword [0x448a44], eax
mov eax, dword [0x448648]
lea esi, [eax + eax]
and esi, 0xd59064f2
neg esi
add eax, esi
add eax, 0x6ac83279
mov dword [0x448a48], eax
movsd xmm0, qword [0x44864c]
xorps xmm0, xmmword [0x444960]
movlps qword [0x448a4c], xmm0
mov eax, dword [0x448654]
mov esi, eax
not esi
or eax, 0xcb60703e
or esi, 0x349f8fc1
and esi, eax
not esi
mov dword [0x448a54], esi
movups xmm0, xmmword [0x448658]
xorps xmm0, xmmword [0x444970]
movups xmmword [0x448a58], xmm0
mov eax, dword [0x448668]
lea esi, [eax + eax]
and esi, 0x6df83e48
neg esi
add eax, esi
add eax, 0x36fc1f24
mov dword [0x448a68], eax
movsd xmm0, qword [0x44866c]
xorps xmm0, xmmword [0x444980]
movlps qword [0x448a6c], xmm0
mov eax, 0xd6e2b217
xor eax, dword [0x448674]
mov dword [0x448a74], eax
mov eax, dword [0x448678]
mov esi, eax
not esi
or esi, 0x2cb07598
or eax, 0xd34f8a67
and eax, esi
movsd xmm0, qword [0x44867c]
xorps xmm0, xmmword [0x444990]
mov dword [0x448a78], eax
mov eax, 0xd0844269
xor eax, dword [0x448684]
movlps qword [0x448a7c], xmm0
mov dword [0x448a84], eax
mov eax, dword [str.N_d]
mov esi, eax
not esi
or esi, 0x12d8594c
or eax, 0xed27a6b3
and eax, esi
mov dword [0x448a88], eax
mov eax, 0x888fd137
xor eax, dword [0x44868c]
mov dword [0x448a8c], eax
mov eax, dword [0x448690]
lea esi, [eax + eax]
and esi, 0x74016cbc
neg esi
add eax, esi
add eax, 0xba00b65e
mov dword [0x448a90], eax
mov eax, dword [0x448694]
mov esi, eax
not esi
or esi, 0xb7dc15ed
or eax, 0x4823ea12
and eax, esi
mov dword [str.3r:_], eax
mov eax, dword [0x448698]
lea esi, [eax + eax]
and esi, 0xebfdff30
neg esi
add eax, esi
add eax, 0xf5feff98
mov dword [0x448a98], eax
movsd xmm0, qword [0x44869c]
xorps xmm0, xmmword [0x4449a0]
movlps qword [0x448a9c], xmm0
mov eax, dword [0x4486a4]
lea esi, [eax + eax]
and esi, 0x8fddc99c
neg esi
add eax, esi
add eax, 0xc7eee4ce
movups xmm0, xmmword [str._rp_a]
xorps xmm0, xmmword [0x4449b0]
mov dword [0x448aa4], eax
movups xmm1, xmmword [0x4486b8]
xorps xmm1, xmmword [0x4449c0]
movups xmmword [0x448aa8], xmm0
mov eax, 0x392b125a
xor eax, dword [0x4486c8]
movups xmmword [0x448ab8], xmm1
mov dword [0x448ac8], eax
mov eax, dword [0x4486cc]
mov esi, eax
not esi
or esi, 0xcbda9ec0
or eax, 0x3425613f
and eax, esi
mov dword [0x448acc], eax
movaps xmm0, xmmword [0x4486d0]
xorps xmm0, xmmword [0x4449d0]
movaps xmmword [0x448ad0], xmm0
movsd xmm0, qword [0x4486e0]
xorps xmm0, xmmword [0x4449e0]
movlps qword [0x448ae0], xmm0
mov eax, 0xc5cfcf3
xor eax, dword [0x4486e8]
mov dword [0x448ae8], eax
mov eax, dword [0x4486ec]
mov esi, eax
not esi
or eax, 0x44467a66
or esi, 0xbbb98599
and esi, eax
not esi
mov dword [0x448aec], esi
movaps xmm0, xmmword [0x4486f0]
xorps xmm0, xmmword [0x4449f0]
movaps xmmword [0x448af0], xmm0
movaps xmm0, xmmword [0x448700]
xorps xmm0, xmmword [0x444a00]
movaps xmmword [0x448b00], xmm0
movaps xmm0, xmmword [0x448710]
xorps xmm0, xmmword [0x444a10]
movaps xmmword [0x448b10], xmm0
movsd xmm0, qword [0x448720]
xorps xmm0, xmmword [0x444a20]
movlps qword [0x448b20], xmm0
mov eax, dword [0x448728]
mov esi, eax
not esi
or esi, 0xde06b762
or eax, 0x21f9489d
and eax, esi
mov dword [0x448b28], eax
movsd xmm0, qword [0x44872c]
xorps xmm0, xmmword [0x444a30]
movlps qword [0x448b2c], xmm0
mov eax, 0xf2ef1b36
xor eax, dword [0x448734]
mov dword [0x448b34], eax
mov eax, dword [0x448738]
mov esi, eax
not esi
or eax, 0x2d7dd34d
or esi, 0xd2822cb2
and esi, eax
not esi
mov dword [0x448b38], esi
mov eax, 0x5ce4287e
xor eax, dword [0x44873c]
mov dword [0x448b3c], eax
mov eax, dword [0x448740]
lea esi, [eax + eax]
and esi, 0x7a8cc1c2
neg esi
add eax, esi
add eax, 0x3d4660e1
mov esi, 0xb7447302
xor esi, dword [0x448744]
mov dword [0x448b40], eax
mov dword [0x448b44], esi
mov eax, dword [0x448748]
lea esi, [eax + eax]
and esi, 0xc70e4f00
neg esi
add eax, esi
add eax, 0x63872780
mov dword [0x448b48], eax
mov eax, 0x1db10542
xor eax, dword [0x44874c]
mov dword [0x448b4c], eax
mov eax, dword [0x448750]
mov esi, eax
not esi
or eax, 0xcf7cd12a
or esi, 0x30832ed5
and esi, eax
not esi
mov dword [0x448b50], esi
movups xmm0, xmmword [0x448754]
xorps xmm0, xmmword [0x444a40]
movups xmmword [0x448b54], xmm0
movups xmm0, xmmword [0x448764]
xorps xmm0, xmmword [0x444a50]
movups xmmword [0x448b64], xmm0
mov eax, dword [0x448774]
lea esi, [eax + eax]
and esi, 0xa0ed8aa2
neg esi
add eax, esi
add eax, 0x5076c551
movsd xmm0, qword [0x448778]
xorps xmm0, xmmword [0x444a60]
mov dword [0x448b74], eax
mov eax, 0x5526e35d
xor eax, dword [0x448780]
movlps qword [0x448b78], xmm0
mov dword [0x448b80], eax
mov eax, dword [0x448784]
lea esi, [eax + eax]
and esi, 0xf622b576
neg esi
add eax, esi
add eax, 0x7b115abb
mov dword [0x448b84], eax
movups xmm0, xmmword [0x448788]
xorps xmm0, xmmword [0x444a70]
movups xmmword [0x448b88], xmm0
movups xmm0, xmmword [0x448798]
xorps xmm0, xmmword [0x444a80]
movups xmmword [0x448b98], xmm0
movups xmm0, xmmword [0x4487a8]
xorps xmm0, xmmword [0x444a90]
movups xmmword [0x448ba8], xmm0
mov eax, 0x4f944e5c
xor eax, dword [0x4487b8]
mov dword [0x448bb8], eax
mov eax, dword [0x4487bc]
lea esi, [eax + eax]
and esi, 0x6888589c
neg esi
add eax, esi
add eax, 0x34442c4e
movsd xmm0, qword [0x4487c0]
xorps xmm0, xmmword [0x444aa0]
mov dword [0x448bbc], eax
mov eax, 0x6ca86e57
xor eax, dword [0x4487c8]
movlps qword [0x448bc0], xmm0
mov dword [0x448bc8], eax
mov eax, dword [0x4487cc]
mov esi, eax
not esi
or eax, 0x416059f0
or esi, 0xbe9fa60f
and esi, eax
not esi
movaps xmm0, xmmword [0x4487d0]
xorps xmm0, xmmword [0x444ab0]
mov dword [0x448bcc], esi
mov eax, 0xd4beaa50
xor eax, dword [0x4487e0]
movaps xmmword [0x448bd0], xmm0
mov dword [0x448be0], eax
mov eax, dword [0x4487e4]
mov esi, eax
not esi
or eax, 0xbceee3cb
or esi, 0x43111c34
and esi, eax
not esi
movsd xmm0, qword [0x4487e8]
xorps xmm0, xmmword [0x444ac0]
mov dword [0x448be4], esi
mov eax, 0xb9e6760c
xor eax, dword [0x4487f0]
movlps qword [0x448be8], xmm0
mov dword [0x448bf0], eax
mov eax, dword [0x4487f4]
lea esi, [eax + eax]
and esi, 0xecdd774a
neg esi
add eax, esi
add eax, 0xf66ebba5
mov dword [0x448bf4], eax
movsd xmm0, qword [0x4487f8]
xorps xmm0, xmmword [0x444ad0]
movlps qword [0x448bf8], xmm0
mov eax, dword [0x448800]
lea esi, [eax + eax]
and esi, 0xced8d67a
neg esi
add eax, esi
add eax, 0x676c6b3d
movups xmm0, xmmword [0x448804]
xorps xmm0, xmmword [0x444ae0]
mov dword [0x448c00], eax
movsd xmm1, qword [0x448814]
xorps xmm1, xmmword [0x444af0]
movups xmmword [0x448c04], xmm0
movlps qword [0x448c14], xmm1
movq xmm0, qword [0x44881c]
movdqa xmm1, xmm0
paddd xmm1, xmm0
pand xmm1, xmmword [0x444b00]
psubd xmm0, xmm1
paddd xmm0, xmmword [0x444b10]
movq qword [0x448c1c], xmm0
movups xmm0, xmmword [0x448824]
xorps xmm0, xmmword [0x444b20]
movups xmmword [0x448c24], xmm0
mov eax, 0xf42c247c
xor eax, dword [0x448834]
mov dword [0x448c34], eax
movq xmm0, qword [0x448838]
movdqa xmm1, xmm0
paddd xmm1, xmm0
pand xmm1, xmmword [0x444b30]
psubd xmm0, xmm1
paddd xmm0, xmmword [0x444b40]
movq qword [0x448c38], xmm0
movaps xmm0, xmmword [0x448840]
xorps xmm0, xmmword [0x444b50]
movaps xmmword [0x448c40], xmm0
movsd xmm0, qword [0x448850]
xorps xmm0, xmmword [str._9_u]
movlps qword [0x448c50], xmm0
mov eax, 0x51827ba1
xor eax, dword [0x448858]
movq xmm0, qword [0x44885c]
movdqa xmm1, xmm0
paddd xmm1, xmm0
pand xmm1, xmmword [0x444b70]
mov dword [0x448c58], eax
psubd xmm0, xmm1
paddd xmm0, xmmword [0x444b80]
movq qword [0x448c5c], xmm0
movsd xmm0, qword [0x448864]
xorps xmm0, xmmword [0x444b90]
movlps qword [0x448c64], xmm0
mov eax, dword [0x44886c]
lea esi, [eax + eax]
and esi, 0xc1adcd8e
neg esi
add eax, esi
add eax, 0xe0d6e6c7
mov dword [str.6xx_], eax
movsd xmm0, qword [0x448870]
xorps xmm0, xmmword [0x444ba0]
movlps qword [0x448c70], xmm0
mov eax, 0x21e0fe7e
xor eax, dword [0x448878]
mov dword [str.n_86_.], eax
mov eax, dword [0x44887c]
lea esi, [eax + eax]
and esi, 0xb5c0c3f8
neg esi
add eax, esi
add eax, 0xdae061fc
mov dword [0x448c7c], eax
mov eax, 0xf6e7e9d0
xor eax, dword [0x448880]
mov dword [0x448c80], eax
mov eax, dword [0x448884]
lea esi, [eax + eax]
and esi, 0xd6812c6a
neg esi
add eax, esi
add eax, 0xeb409635
mov dword [0x448c84], eax
movups xmm0, xmmword [0x448888]
xorps xmm0, xmmword [0x444bb0]
movups xmmword [0x448c88], xmm0
movups xmm0, xmmword [0x448898]
xorps xmm0, xmmword [0x444bc0]
movups xmmword [0x448c98], xmm0
mov eax, 0xd8311028
xor eax, dword [0x4488a8]
mov dword [0x448ca8], eax
mov eax, dword [0x4488ac]
lea esi, [eax + eax]
and esi, 0x165378aa
neg esi
add eax, esi
add eax, 0xb29bc55
mov dword [0x448cac], eax
movaps xmm0, xmmword [0x4488b0]
xorps xmm0, xmmword [0x444bd0]
movaps xmmword [0x448cb0], xmm0
movaps xmm0, xmmword [0x4488c0]
xorps xmm0, xmmword [0x444be0]
movaps xmmword [0x448cc0], xmm0
mov eax, 0x24e480df
xor eax, dword [0x4488d0]
mov dword [0x448cd0], eax
mov eax, dword [0x4488d4]
lea esi, [eax + eax]
and esi, 0x588b2a00
neg esi
add eax, esi
add eax, 0x2c459500
mov dword [0x448cd4], eax
mov eax, 0x54563294
xor eax, dword [0x4488d8]
mov dword [0x448cd8], eax
mov eax, dword [0x4488dc]
mov esi, eax
not esi
or eax, 0x1e68de19
or esi, 0xe19721e6
and esi, eax
not esi
mov dword [0x448cdc], esi
mov eax, dword [0x4488e0]
lea esi, [eax + eax]
and esi, 0xd98281ca
neg esi
add eax, esi
add eax, 0xecc140e5
mov dword [0x448ce0], eax
movups xmm0, xmmword [0x4488e4]
xorps xmm0, xmmword [0x444bf0]
movups xmmword [0x448ce4], xmm0
movups xmm0, xmmword [0x4488f4]
xorps xmm0, xmmword [0x444c00]
movups xmmword [0x448cf4], xmm0
movsd xmm0, qword [0x448904]
xorps xmm0, xmmword [0x444c10]
movlps qword [0x448d04], xmm0
mov eax, dword [0x44890c]
lea esi, [eax + eax]
and esi, 0x1632ac10
neg esi
add eax, esi
add eax, 0xb195608
mov dword [0x448d0c], eax
mov eax, 0x93279b9a
xor eax, dword [0x448910]
mov dword [0x448d10], eax
movq xmm0, qword [0x448914]
movdqa xmm1, xmm0
paddd xmm1, xmm0
pand xmm1, xmmword [0x444c20]
psubd xmm0, xmm1
paddd xmm0, xmmword [0x444c30]
movq qword [0x448d14], xmm0
movups xmm0, xmmword [0x44891c]
xorps xmm0, xmmword [0x444c40]
movups xmmword [0x448d1c], xmm0
movups xmm0, xmmword [0x44892c]
xorps xmm0, xmmword [0x444c50]
movups xmmword [0x448d2c], xmm0
movups xmm0, xmmword [0x44893c]
xorps xmm0, xmmword [0x444c60]
movups xmmword [0x448d3c], xmm0
movups xmm0, xmmword [0x44894c]
xorps xmm0, xmmword [0x444c70]
movups xmmword [str._f_7d], xmm0
movups xmm0, xmmword [0x44895c]
xorps xmm0, xmmword [0x444c80]
movups xmmword [0x448d5c], xmm0
movsd xmm0, qword [0x44896c]
xorps xmm0, xmmword [0x444c90]
movlps qword [0x448d6c], xmm0
mov eax, dword [0x448974]
lea esi, [eax + eax]
and esi, 0xb5b702ac
neg esi
add eax, esi
add eax, 0xdadb8156
movups xmm0, xmmword [0x448978]
xorps xmm0, xmmword [0x444ca0]
mov dword [0x448d74], eax
movups xmmword [0x448d78], xmm0
movq xmm0, qword [0x448988]
movdqa xmm1, xmm0
paddd xmm1, xmm0
pand xmm1, xmmword [0x444cb0]
psubd xmm0, xmm1
paddd xmm0, xmmword [0x444cc0]
movq qword [0x448d88], xmm0
movsd xmm0, qword [0x448990]
xorps xmm0, xmmword [0x444cd0]
movlps qword [0x448d90], xmm0
mov eax, 0x46ef3e91
xor eax, dword [0x448998]
mov dword [0x448d98], eax
movq xmm0, qword [0x44899c]
movdqa xmm1, xmm0
paddd xmm1, xmm0
pand xmm1, xmmword [0x444ce0]
psubd xmm0, xmm1
paddd xmm0, xmmword [str._.U4]
movq qword [0x448d9c], xmm0
mov eax, 0xbeaf7240
xor eax, dword [0x4489a4]
mov dword [0x448da4], eax
mov eax, dword [0x4489a8]
lea esi, [eax + eax]
and esi, 0xa8d7b18
neg esi
add eax, esi
add eax, 0x546bd8c
movups xmm0, xmmword [0x4489ac]
xorps xmm0, xmmword [0x444d00]
mov dword [0x448da8], eax
movups xmm1, xmmword [0x4489bc]
xorps xmm1, xmmword [0x444d10]
movups xmmword [0x448dac], xmm0
mov eax, 0x9e07842d
xor eax, dword [0x4489cc]
movups xmmword [0x448dbc], xmm1
mov dword [0x448dcc], eax
mov eax, dword [0x4489d0]
lea esi, [eax + eax]
and esi, 0x8cf994ca
neg esi
add eax, esi
add eax, 0xc67cca65
mov dword [0x448dd0], eax
mov eax, 0xddf6bab9
xor eax, dword [0x4489d4]
mov dword [0x448dd4], eax
mov eax, dword [0x4489d8]
lea esi, [eax + eax]
and esi, 0x5d420050
neg esi
add eax, esi
add eax, 0x2ea10028
movsd xmm0, qword [0x4489dc]
xorps xmm0, xmmword [0x444d20]
mov dword [0x448dd8], eax
mov eax, 0x7276d149
xor eax, dword [0x4489e4]
movlps qword [0x448ddc], xmm0
mov dword [0x448de4], eax
mov eax, dword [0x4489e8]
lea esi, [eax + eax]
and esi, 0x6db405cc
neg esi
add eax, esi
add eax, 0xb6da02e6
mov dword [0x448de8], eax
mov eax, 0x1bba4bc2
xor eax, dword [0x4489ec]
mov dword [0x448dec], eax
mov esi, dword [esp + 0x14]
mov dword [0x458040], 1
not edx
cmp ecx, 4
jb 0x4040cb
nop dword [eax + eax]
mov eax, edx
xor dl, byte [esi]
shr eax, 8
movzx edx, dl
xor eax, dword [edx*4 + 0x4489f0]
mov ebx, eax
xor al, byte [esi + 1]
shr ebx, 8
movzx eax, al
xor ebx, dword [eax*4 + 0x4489f0]
mov edx, ebx
xor bl, byte [esi + 2]
shr edx, 8
movzx eax, bl
xor edx, dword [eax*4 + 0x4489f0]
movzx eax, byte [esi + 3]
xor al, dl
movzx eax, al
shr edx, 8
xor edx, dword [eax*4 + 0x4489f0]
add esi, 4
mov eax, ecx
or eax, 0xfffffffb
and ecx, 0xfffffffb
add ecx, eax
inc ecx
cmp ecx, 3
ja 0x404070
test ecx, ecx
je 0x4040dd
test cl, 1
jne 0x4040e1
mov edi, ecx
cmp ecx, 1
jne 0x404101
jmp 0x40413f
mov eax, edx
jmp 0x40413f
mov eax, edx
shr eax, 8
xor dl, byte [esi]
movzx edx, dl
xor eax, dword [edx*4 + 0x4489f0]
inc esi
mov edx, ecx
not edx
lea edi, [edx + ecx*2]
mov edx, eax
cmp ecx, 1
je 0x40413f
lea ecx, [edi + edi]
xor ebx, ebx
mov eax, edx
nop dword [eax + eax]
mov edx, eax
xor al, byte [esi + ebx]
shr edx, 8
movzx eax, al
xor edx, dword [eax*4 + 0x4489f0]
mov eax, edx
xor dl, byte [esi + ebx + 1]
shr eax, 8
movzx edx, dl
xor eax, dword [edx*4 + 0x4489f0]
add ebx, 2
add ecx, 0xfffffffc
cmp edi, ebx
jne 0x404110
not eax
pop esi
pop edi
pop ebx
ret