Function at 0x4034c0
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 [0x458038]
test eax, eax
jne 0x404107
movsd xmm0, qword [0x4485f0]
xorps xmm0, xmmword [0x444910]
mov eax, 0x7a062933
xor eax, dword [0x4485f8]
movlps qword [0x4489f0], xmm0
mov dword [0x4489f8], eax
mov eax, dword [0x4485fc]
lea esi, [eax + eax]
and esi, 0x6952a7ca
neg esi
add eax, esi
add eax, 0x34a953e5
mov dword [0x4489fc], eax
movaps xmm0, xmmword [0x448600]
xorps xmm0, xmmword [0x444920]
movaps xmmword [0x448a00], xmm0
movsd xmm0, qword [0x448610]
xorps xmm0, xmmword [0x444930]
movlps qword [0x448a10], xmm0
mov eax, 0x59944e46
xor eax, dword [0x448618]
mov dword [0x448a18], eax
mov eax, dword [0x44861c]
lea esi, [eax + eax]
and esi, 0x7aa8f86a
neg esi
add eax, esi
add eax, 0xbd547c35
mov esi, 0x34f01553
xor esi, dword [0x448620]
mov dword [0x448a1c], eax
mov dword [0x448a20], esi
mov eax, dword [0x448624]
lea esi, [eax + eax]
and esi, 0x5bdb637c
neg esi
add eax, esi
add eax, 0x2dedb1be
mov dword [0x448a24], eax
movsd xmm0, qword [0x448628]
xorps xmm0, xmmword [0x444940]
movlps qword [0x448a28], xmm0
mov eax, 0x88d708f1
xor eax, dword [0x448630]
movq xmm0, qword [0x448634]
movdqa xmm1, xmm0
paddd xmm1, xmm0
pand xmm1, xmmword [0x444950]
mov dword [0x448a30], eax
psubd xmm0, xmm1
paddd xmm0, xmmword [0x444960]
movq xmm1, qword [0x44863c]
pxor xmm1, xmmword [0x444970]
punpcklqdq xmm0, xmm1
movdqu xmmword [0x448a34], xmm0
mov eax, dword [0x448644]
lea esi, [eax + eax]
and esi, 0x569c6d32
neg esi
add eax, esi
add eax, 0x2b4e3699
mov dword [0x448a44], eax
movups xmm0, xmmword [0x448648]
xorps xmm0, xmmword [0x444980]
movups xmmword [0x448a48], xmm0
mov eax, dword [0x448658]
lea esi, [eax + eax]
and esi, 0x63d630be
neg esi
add eax, esi
add eax, 0xb1eb185f
movq xmm0, qword [0x44865c]
pxor xmm0, xmmword [0x444990]
movq xmm1, qword [0x448664]
movdqa xmm2, xmm1
paddd xmm2, xmm1
pand xmm2, xmmword [0x4449a0]
mov dword [0x448a58], eax
psubd xmm1, xmm2
paddd xmm1, xmmword [0x4449b0]
punpcklqdq xmm0, xmm1
movdqu xmmword [0x448a5c], xmm0
mov eax, dword [0x44866c]
lea esi, [eax + eax]
and esi, 0x34570ed0
neg esi
add eax, esi
add eax, 0x9a2b8768
mov dword [0x448a6c], eax
movsd xmm0, qword [0x448670]
xorps xmm0, xmmword [0x4449c0]
movlps qword [0x448a70], xmm0
mov eax, 0x25d2ecda
xor eax, dword [0x448678]
mov dword [0x448a78], eax
mov eax, dword [0x44867c]
lea esi, [eax + eax]
and esi, 0x1952d18e
neg esi
add eax, esi
add eax, 0xca968c7
movaps xmm0, xmmword [0x448680]
xorps xmm0, xmmword [0x4449d0]
mov dword [0x448a7c], eax
movsd xmm1, qword [0x448690]
xorps xmm1, xmmword [0x4449e0]
movaps xmmword [0x448a80], xmm0
mov eax, 0x607dfa67
xor eax, dword [0x448698]
movlps qword [0x448a90], xmm1
mov dword [0x448a98], eax
mov eax, dword [0x44869c]
lea esi, [eax + eax]
and esi, 0x8aaad088
neg esi
add eax, esi
add eax, 0xc5556844
mov dword [0x448a9c], eax
mov eax, 0x811b2a10
xor eax, dword [0x4486a0]
mov dword [0x448aa0], eax
mov eax, dword [0x4486a4]
mov esi, eax
not esi
or esi, 0xe2d74f89
or eax, 0x1d28b076
and eax, esi
mov dword [0x448aa4], eax
movups xmm0, xmmword [0x4486a8]
xorps xmm0, xmmword [0x4449f0]
movups xmmword [0x448aa8], xmm0
mov eax, 0x2f8903b9
xor eax, dword [0x4486b8]
mov dword [0x448ab8], eax
mov eax, dword [0x4486bc]
lea esi, [eax + eax]
and esi, 0xeb36db6e
neg esi
add eax, esi
add eax, 0xf59b6db7
mov dword [0x448abc], eax
movsd xmm0, qword [0x4486c0]
xorps xmm0, xmmword [str._9e_vSd_b]
movlps qword [0x448ac0], xmm0
mov eax, 0xcbadd2bd
xor eax, dword [0x4486c8]
mov dword [0x448ac8], eax
mov eax, dword [0x4486cc]
lea esi, [eax + eax]
and esi, 0x95f27a12
neg esi
add eax, esi
add eax, 0x4af93d09
mov dword [0x448acc], eax
mov eax, 0x11d984fc
xor eax, dword [0x4486d0]
mov dword [0x448ad0], eax
mov eax, dword [0x4486d4]
mov esi, eax
not esi
or eax, 0x79cb25bc
or esi, 0x8634da43
and esi, eax
not esi
mov dword [0x448ad4], esi
mov eax, 0x85cb7cdd
xor eax, dword [0x4486d8]
mov dword [0x448ad8], eax
mov eax, dword [0x4486dc]
mov esi, eax
not esi
or esi, 0x7c234a16
or eax, 0x83dcb5e9
and eax, esi
movaps xmm0, xmmword [0x4486e0]
xorps xmm0, xmmword [0x444a10]
mov dword [0x448adc], eax
mov eax, 0x4a8f3e57
xor eax, dword [0x4486f0]
movaps xmmword [0x448ae0], xmm0
mov dword [0x448af0], eax
mov eax, dword [0x4486f4]
lea esi, [eax + eax]
and esi, 0x54ebbbb6
neg esi
add eax, esi
add eax, 0xaa75dddb
mov dword [0x448af4], eax
movups xmm0, xmmword [0x4486f8]
xorps xmm0, xmmword [0x444a20]
movups xmmword [0x448af8], xmm0
mov eax, 0xd9e9d700
xor eax, dword [0x448708]
mov dword [0x448b08], eax
mov eax, dword [0x44870c]
lea esi, [eax + eax]
and esi, 0x903a0148
neg esi
add eax, esi
add eax, 0xc81d00a4
movaps xmm0, xmmword [0x448710]
xorps xmm0, xmmword [0x444a30]
mov dword [0x448b0c], eax
movaps xmm1, xmmword [0x448720]
xorps xmm1, xmmword [0x444a40]
movaps xmmword [0x448b10], xmm0
movaps xmm0, xmmword [0x448730]
xorps xmm0, xmmword [0x444a50]
movaps xmmword [0x448b20], xmm1
movsd xmm1, qword [0x448740]
xorps xmm1, xmmword [0x444a60]
movaps xmmword [0x448b30], xmm0
mov eax, 0x3d08ae39
xor eax, dword [0x448748]
movlps qword [0x448b40], xmm1
mov dword [0x448b48], eax
mov eax, dword [0x44874c]
mov esi, eax
not esi
or eax, 0x20b8702b
or esi, 0xdf478fd4
and esi, eax
not esi
movsd xmm0, qword [0x448750]
xorps xmm0, xmmword [0x444a70]
mov dword [0x448b4c], esi
movlps qword [0x448b50], xmm0
mov eax, dword [0x448758]
lea esi, [eax + eax]
and esi, 0x6d0a3c38
neg esi
add eax, esi
add eax, 0x36851e1c
mov dword [0x448b58], eax
mov eax, 0xbd19e458
xor eax, dword [0x44875c]
mov dword [0x448b5c], eax
mov eax, dword [0x448760]
lea esi, [eax + eax]
and esi, 0xbfb45b0
neg esi
add eax, esi
add eax, 0x5fda2d8
movups xmm0, xmmword [0x448764]
xorps xmm0, xmmword [0x444a80]
mov dword [0x448b60], eax
movups xmmword [0x448b64], xmm0
mov eax, dword [0x448774]
lea esi, [eax + eax]
and esi, 0xba2f0d78
neg esi
add eax, esi
add eax, 0xdd1786bc
mov dword [0x448b74], eax
movups xmm0, xmmword [0x448778]
xorps xmm0, xmmword [0x444a90]
movups xmmword [0x448b78], xmm0
movups xmm0, xmmword [0x448788]
xorps xmm0, xmmword [0x444aa0]
movups xmmword [0x448b88], xmm0
movups xmm0, xmmword [0x448798]
xorps xmm0, xmmword [0x444ab0]
movups xmmword [0x448b98], xmm0
mov eax, 0xfb5002c6
xor eax, dword [0x4487a8]
mov dword [0x448ba8], eax
mov eax, dword [0x4487ac]
mov esi, eax
not esi
or esi, 0x2e4091cb
or eax, 0xd1bf6e34
and eax, esi
mov dword [0x448bac], eax
movsd xmm0, qword [0x4487b0]
xorps xmm0, xmmword [0x444ac0]
movlps qword [0x448bb0], xmm0
movq xmm0, qword [0x4487b8]
movdqa xmm1, xmm0
paddd xmm1, xmm0
pand xmm1, xmmword [0x444ad0]
psubd xmm0, xmm1
paddd xmm0, xmmword [0x444ae0]
movq qword [0x448bb8], xmm0
mov eax, 0x9b1e01a7
xor eax, dword [0x4487c0]
mov dword [0x448bc0], eax
mov eax, dword [0x4487c4]
lea esi, [eax + eax]
and esi, 0x9e12acaa
neg esi
add eax, esi
add eax, 0x4f095655
movsd xmm0, qword [0x4487c8]
xorps xmm0, xmmword [0x444af0]
mov dword [0x448bc4], eax
movlps qword [0x448bc8], xmm0
mov eax, dword [0x4487d0]
mov esi, eax
not esi
or eax, 0x1661c7c8
or esi, 0xe99e3837
and esi, eax
not esi
movups xmm0, xmmword [0x4487d4]
xorps xmm0, xmmword [0x444b00]
mov dword [0x448bd0], esi
movups xmm1, xmmword [0x4487e4]
xorps xmm1, xmmword [0x444b10]
movups xmmword [0x448bd4], xmm0
movups xmmword [0x448be4], xmm1
mov eax, dword [0x4487f4]
lea esi, [eax + eax]
and esi, 0xfd2d7200
neg esi
add eax, esi
add eax, 0x7e96b900
mov dword [0x448bf4], eax
movsd xmm0, qword [0x4487f8]
xorps xmm0, xmmword [0x444b20]
movlps qword [0x448bf8], xmm0
mov eax, dword [0x448800]
lea esi, [eax + eax]
and esi, 0xe1c8040c
neg esi
add eax, esi
add eax, 0x70e40206
movups xmm0, xmmword [0x448804]
xorps xmm0, xmmword [0x444b30]
mov dword [0x448c00], eax
movsd xmm1, qword [str.u_vVj_]
xorps xmm1, xmmword [0x444b40]
movups xmmword [0x448c04], xmm0
movlps qword [0x448c14], xmm1
mov eax, dword [0x44881c]
lea esi, [eax + eax]
and esi, 0x69bc6a58
neg esi
add eax, esi
add eax, 0x34de352c
mov dword [0x448c1c], eax
mov eax, dword [0x448820]
mov esi, eax
not esi
or esi, 0xe34a525f
or eax, 0x1cb5ada0
and eax, esi
mov dword [0x448c20], eax
movups xmm0, xmmword [0x448824]
xorps xmm0, xmmword [0x444b50]
movups xmmword [0x448c24], xmm0
movsd xmm0, qword [str.af]
xorps xmm0, xmmword [0x444b60]
movlps qword [0x448c34], xmm0
mov eax, dword [0x44883c]
lea esi, [eax + eax]
and esi, 0x27faaffe
neg esi
add eax, esi
add eax, 0x13fd57ff
mov dword [0x448c3c], eax
movsd xmm0, qword [0x448840]
xorps xmm0, xmmword [0x444b70]
movlps qword [0x448c40], xmm0
mov eax, dword [0x448848]
lea esi, [eax + eax]
and esi, 0xc6beac72
neg esi
add eax, esi
add eax, 0xe35f5639
mov dword [0x448c48], eax
mov eax, 0xb757e1b6
xor eax, dword [0x44884c]
mov dword [0x448c4c], eax
movq xmm0, qword [0x448850]
movdqa xmm1, xmm0
paddd xmm1, xmm0
pand xmm1, xmmword [0x444b80]
psubd xmm0, xmm1
paddd xmm0, xmmword [0x444b90]
movq qword [0x448c50], xmm0
movups xmm0, xmmword [0x448858]
xorps xmm0, xmmword [0x444ba0]
movups xmmword [0x448c58], xmm0
mov eax, 0x938a5a90
xor eax, dword [0x448868]
movq xmm0, qword [0x44886c]
movdqa xmm1, xmm0
paddd xmm1, xmm0
pand xmm1, xmmword [0x444bb0]
mov dword [0x448c68], eax
psubd xmm0, xmm1
paddd xmm0, xmmword [0x444bc0]
mov eax, 0xbb414af1
xor eax, dword [0x448874]
movq xmm1, qword [0x448878]
movdqa xmm2, xmm1
paddd xmm2, xmm1
pand xmm2, xmmword [0x444bd0]
movq qword [0x448c6c], xmm0
psubd xmm1, xmm2
paddd xmm1, xmmword [0x444be0]
mov dword [0x448c74], eax
movaps xmm0, xmmword [0x448880]
xorps xmm0, xmmword [0x444bf0]
movq qword [0x448c78], xmm1
movaps xmm1, xmmword [0x448890]
xorps xmm1, xmmword [0x444c00]
movaps xmmword [0x448c80], xmm0
mov eax, 0xc11812d7
xor eax, dword [0x4488a0]
movaps xmmword [0x448c90], xmm1
mov dword [0x448ca0], eax
mov eax, dword [0x4488a4]
mov esi, eax
not esi
or eax, 0x286a2653
or esi, 0xd795d9ac
and esi, eax
not esi
mov dword [0x448ca4], esi
mov eax, dword [0x4488a8]
lea esi, [eax + eax]
and esi, 0x743dcea
neg esi
add eax, esi
add eax, 0x3a1ee75
mov dword [0x448ca8], eax
mov eax, 0x51b194d2
xor eax, dword [0x4488ac]
movq xmm0, qword [0x4488b0]
movdqa xmm1, xmm0
paddd xmm1, xmm0
pand xmm1, xmmword [0x444c10]
mov dword [0x448cac], eax
psubd xmm0, xmm1
paddd xmm0, xmmword [0x444c20]
movq qword [0x448cb0], xmm0
movsd xmm0, qword [0x4488b8]
xorps xmm0, xmmword [0x444c30]
movlps qword [0x448cb8], xmm0
mov eax, 0xa83a4858
xor eax, dword [0x4488c0]
mov dword [str.mE_25], eax
mov eax, dword [0x4488c4]
lea esi, [eax + eax]
and esi, 0xfc7dd4de
neg esi
add eax, esi
add eax, 0xfe3eea6f
mov dword [0x448cc4], eax
movsd xmm0, qword [0x4488c8]
xorps xmm0, xmmword [0x444c40]
movlps qword [0x448cc8], xmm0
mov eax, 0xd8c1a38b
xor eax, dword [0x4488d0]
mov dword [0x448cd0], eax
mov eax, dword [0x4488d4]
lea esi, [eax + eax]
and esi, 0xc40712be
neg esi
add eax, esi
add eax, 0xe203895f
mov dword [0x448cd4], eax
movups xmm0, xmmword [0x4488d8]
xorps xmm0, xmmword [0x444c50]
movups xmmword [0x448cd8], xmm0
movups xmm0, xmmword [0x4488e8]
xorps xmm0, xmmword [0x444c60]
movups xmmword [0x448ce8], xmm0
movups xmm0, xmmword [0x4488f8]
xorps xmm0, xmmword [0x444c70]
movups xmmword [0x448cf8], xmm0
movups xmm0, xmmword [0x448908]
xorps xmm0, xmmword [0x444c80]
movups xmmword [0x448d08], xmm0
movups xmm0, xmmword [0x448918]
xorps xmm0, xmmword [0x444c90]
mov eax, 0xcc85a146
xor eax, dword [0x448928]
movq xmm1, qword [0x44892c]
movdqa xmm2, xmm1
paddd xmm2, xmm1
pand xmm2, xmmword [0x444ca0]
movups xmmword [0x448d18], xmm0
psubd xmm1, xmm2
paddd xmm1, xmmword [0x444cb0]
mov dword [0x448d28], eax
mov eax, 0xb688f462
xor eax, dword [0x448934]
movq qword [0x448d2c], xmm1
mov dword [0x448d34], eax
mov eax, dword [0x448938]
mov esi, eax
not esi
or esi, 0xa8a0a91b
or eax, 0x575f56e4
and eax, esi
mov dword [0x448d38], eax
mov eax, 0x859a2bae
xor eax, dword [0x44893c]
mov dword [0x448d3c], eax
mov eax, dword [0x448940]
lea esi, [eax + eax]
and esi, 0xa3e604ac
neg esi
add eax, esi
add eax, 0x51f30256
mov dword [0x448d40], eax
movups xmm0, xmmword [0x448944]
xorps xmm0, xmmword [0x444cc0]
movups xmmword [0x448d44], xmm0
movups xmm0, xmmword [0x448954]
xorps xmm0, xmmword [0x444cd0]
movups xmmword [0x448d54], xmm0
movsd xmm0, qword [0x448964]
xorps xmm0, xmmword [0x444ce0]
movlps qword [0x448d64], xmm0
mov eax, 0x4527dac7
xor eax, dword [0x44896c]
mov dword [0x448d6c], eax
mov eax, dword [0x448970]
lea esi, [eax + eax]
and esi, 0x48d416d8
neg esi
add eax, esi
add eax, 0xa46a0b6c
mov dword [0x448d70], eax
movsd xmm0, qword [0x448974]
xorps xmm0, xmmword [0x444cf0]
movlps qword [0x448d74], xmm0
mov eax, dword [0x44897c]
mov esi, eax
not esi
or esi, 0x696d845c
or eax, 0x96927ba3
and eax, esi
mov dword [0x448d7c], eax
movsd xmm0, qword [0x448980]
xorps xmm0, xmmword [0x444d00]
movlps qword [0x448d80], xmm0
mov eax, 0x56d969c5
xor eax, dword [0x448988]
mov dword [0x448d88], eax
mov eax, dword [0x44898c]
lea esi, [eax + eax]
and esi, 0x61a0cd84
neg esi
add eax, esi
add eax, 0xb0d066c2
movaps xmm0, xmmword [0x448990]
xorps xmm0, xmmword [0x444d10]
mov dword [0x448d8c], eax
movsd xmm1, qword [0x4489a0]
xorps xmm1, xmmword [0x444d20]
movaps xmmword [0x448d90], xmm0
mov eax, 0xc76ef9b
xor eax, dword [0x4489a8]
movlps qword [0x448da0], xmm1
mov dword [0x448da8], eax
mov eax, dword [0x4489ac]
lea esi, [eax + eax]
and esi, 0x17b9a3f4
neg esi
add eax, esi
add eax, 0x8bdcd1fa
mov dword [0x448dac], eax
movaps xmm0, xmmword [0x4489b0]
xorps xmm0, xmmword [0x444d30]
movaps xmmword [0x448db0], xmm0
movaps xmm0, xmmword [0x4489c0]
xorps xmm0, xmmword [0x444d40]
movaps xmmword [0x448dc0], xmm0
movaps xmm0, xmmword [0x4489d0]
xorps xmm0, xmmword [0x444d50]
movaps xmmword [0x448dd0], xmm0
mov eax, 0x5b093d86
xor eax, dword [0x4489e0]
mov dword [0x448de0], eax
mov eax, dword [0x4489e4]
lea esi, [eax + eax]
and esi, 0xdf27b8a6
neg esi
add eax, esi
add eax, 0xef93dc53
mov esi, 0xbf4f1938
xor esi, dword [0x4489e8]
mov dword [0x448de4], eax
mov dword [0x448de8], esi
mov eax, dword [0x4489ec]
lea esi, [eax + eax]
and esi, 0xd5e327f2
neg esi
add eax, esi
add eax, 0x6af193f9
mov dword [0x448dec], eax
mov esi, dword [esp + 0x14]
mov dword [0x458038], 1
not edx
cmp ecx, 4
jb 0x40417d
nop dword [eax]
mov ebx, edx
xor dl, byte [esi]
shr ebx, 8
movzx eax, dl
xor ebx, dword [eax*4 + 0x4489f0]
mov eax, ebx
xor bl, byte [esi + 1]
shr eax, 8
movzx edx, bl
xor eax, dword [edx*4 + 0x4489f0]
mov ebx, eax
shr ebx, 8
movzx edx, byte [esi + 2]
mov edi, eax
and edi, edx
add eax, edx
add edi, edi
sub eax, edi
movzx eax, al
xor ebx, dword [eax*4 + 0x4489f0]
mov edx, ebx
xor bl, byte [esi + 3]
shr edx, 8
movzx eax, bl
xor edx, dword [eax*4 + 0x4489f0]
add esi, 4
add ecx, 0xfffffffc
cmp ecx, 3
ja 0x404120
test ecx, ecx
je 0x40418f
test cl, 1
jne 0x404193
mov edi, ecx
cmp ecx, 1
jne 0x4041b9
jmp 0x404200
mov eax, edx
jmp 0x404200
mov eax, edx
shr eax, 8
xor dl, byte [esi]
movzx edx, dl
mov edx, dword [edx*4 + 0x4489f0]
mov edi, edx
and edi, eax
add eax, edx
add edi, edi
sub eax, edi
inc esi
lea edi, [ecx - 1]
mov edx, eax
cmp ecx, 1
je 0x404200
xor ecx, ecx
mov eax, edx
nop dword [eax]
mov edx, eax
shr edx, 8
xor al, byte [esi + ecx]
movzx eax, al
mov eax, dword [eax*4 + 0x4489f0]
mov ebx, eax
and ebx, edx
add edx, eax
add ebx, ebx
sub edx, ebx
mov eax, edx
shr eax, 8
xor dl, byte [esi + ecx + 1]
movzx edx, dl
mov edx, dword [edx*4 + 0x4489f0]
mov ebx, edx
and ebx, eax
add eax, edx
add ebx, ebx
sub eax, ebx
add ecx, 2
cmp edi, ecx
jne 0x4041c0
not eax
pop esi
pop edi
pop ebx
ret