Function at 0x402f80
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 [0x481d50]
test eax, eax
jne 0x403b93
mov eax, dword [0x4615f0]
lea esi, [eax + eax]
and esi, 0x8216b408
neg esi
add eax, esi
add eax, 0xc10b5a04
mov esi, 0xb9a56f7
xor esi, dword [0x4615f4]
mov dword [0x4619f0], eax
mov dword [0x4619f4], esi
mov eax, dword [0x4615f8]
lea esi, [eax + eax]
and esi, 0xb05e39d6
neg esi
add eax, esi
add eax, 0x582f1ceb
mov dword [0x4619f8], eax
mov eax, 0xd831a79b
xor eax, dword [0x4615fc]
movq xmm0, qword [0x461600]
movdqa xmm1, xmm0
paddd xmm1, xmm0
pand xmm1, xmmword [0x45d910]
mov dword [0x4619fc], eax
psubd xmm0, xmm1
paddd xmm0, xmmword [0x45d920]
movq xmm1, qword [0x461608]
pxor xmm1, xmmword [0x45d930]
punpcklqdq xmm0, xmm1
movdqa xmmword [0x461a00], xmm0
mov eax, dword [0x461610]
lea esi, [eax + eax]
and esi, 0xc18354c0
neg esi
add eax, esi
add eax, 0xe0c1aa60
mov dword [0x461a10], eax
movups xmm0, xmmword [0x461614]
xorps xmm0, xmmword [0x45d940]
movups xmmword [0x461a14], xmm0
movups xmm0, xmmword [0x461624]
xorps xmm0, xmmword [0x45d950]
movups xmmword [0x461a24], xmm0
movsd xmm0, qword [0x461634]
xorps xmm0, xmmword [0x45d960]
movlps qword [0x461a34], xmm0
mov eax, dword [0x46163c]
mov esi, eax
not esi
or esi, 0xcaaa6bca
or eax, 0x35559435
and eax, esi
movaps xmm0, xmmword [str.0oJEF]
xorps xmm0, xmmword [0x45d970]
mov dword [0x461a3c], eax
movaps xmm1, xmmword [0x461650]
xorps xmm1, xmmword [0x45d980]
movaps xmmword [0x461a40], xmm0
movaps xmmword [str.M_Wq_v], xmm1
movq xmm0, qword [0x461660]
movdqa xmm1, xmm0
paddd xmm1, xmm0
pand xmm1, xmmword [0x45d990]
psubd xmm0, xmm1
paddd xmm0, xmmword [0x45d9a0]
movq qword [0x461a60], xmm0
movups xmm0, xmmword [0x461668]
xorps xmm0, xmmword [0x45d9b0]
movups xmmword [0x461a68], xmm0
mov eax, 0xdaadc25e
xor eax, dword [0x461678]
mov dword [0x461a78], eax
mov eax, dword [0x46167c]
lea esi, [eax + eax]
and esi, 0x2595b620
neg esi
add eax, esi
add eax, 0x92cadb10
mov dword [0x461a7c], eax
movaps xmm0, xmmword [0x461680]
xorps xmm0, xmmword [0x45d9c0]
movaps xmmword [0x461a80], xmm0
movaps xmm0, xmmword [0x461690]
xorps xmm0, xmmword [0x45d9d0]
movaps xmmword [0x461a90], xmm0
mov eax, 0x90cfc723
xor eax, dword [0x4616a0]
mov dword [0x461aa0], eax
mov eax, dword [0x4616a4]
lea esi, [eax + eax]
and esi, 0xcdf35772
neg esi
add eax, esi
add eax, 0xe6f9abb9
mov dword [0x461aa4], eax
movups xmm0, xmmword [0x4616a8]
xorps xmm0, xmmword [0x45d9e0]
movups xmmword [0x461aa8], xmm0
movups xmm0, xmmword [0x4616b8]
xorps xmm0, xmmword [0x45d9f0]
movups xmmword [0x461ab8], xmm0
mov eax, 0xeddbf571
xor eax, dword [0x4616c8]
mov dword [0x461ac8], eax
mov eax, dword [0x4616cc]
lea esi, [eax + eax]
and esi, 0x78649008
neg esi
add eax, esi
add eax, 0x3c324804
mov dword [0x461acc], eax
movaps xmm0, xmmword [0x4616d0]
xorps xmm0, xmmword [0x45da00]
movaps xmmword [0x461ad0], xmm0
movaps xmm0, xmmword [0x4616e0]
xorps xmm0, xmmword [0x45da10]
movaps xmmword [0x461ae0], xmm0
mov eax, dword [0x4616f0]
lea esi, [eax + eax]
and esi, 0x805b33ba
neg esi
add eax, esi
add eax, 0x402d99dd
mov dword [0x461af0], eax
movups xmm0, xmmword [0x4616f4]
xorps xmm0, xmmword [0x45da20]
movups xmmword [0x461af4], xmm0
movups xmm0, xmmword [0x461704]
xorps xmm0, xmmword [0x45da30]
movups xmmword [0x461b04], xmm0
movq xmm0, qword [0x461714]
pxor xmm0, xmmword [0x45da40]
movq xmm1, qword [0x46171c]
movdqa xmm2, xmm1
paddd xmm2, xmm1
pand xmm2, xmmword [0x45da50]
psubd xmm1, xmm2
paddd xmm1, xmmword [0x45da60]
punpcklqdq xmm0, xmm1
movdqu xmmword [0x461b14], xmm0
movups xmm0, xmmword [0x461724]
xorps xmm0, xmmword [0x45da70]
movups xmmword [0x461b24], xmm0
mov eax, dword [0x461734]
lea esi, [eax + eax]
and esi, 0xc6601c60
neg esi
add eax, esi
add eax, 0x63300e30
movups xmm0, xmmword [0x461738]
xorps xmm0, xmmword [0x45da80]
mov dword [0x461b34], eax
movq xmm1, qword [0x461750]
movdqa xmm2, xmm1
paddd xmm2, xmm1
pand xmm2, xmmword [0x45daa0]
psubd xmm1, xmm2
movq xmm2, qword [0x461748]
pxor xmm2, xmmword [0x45da90]
paddd xmm1, xmmword [0x45dab0]
movups xmmword [0x461b38], xmm0
punpcklqdq xmm2, xmm1
movdqu xmmword [0x461b48], xmm2
mov eax, dword [0x461758]
mov esi, eax
not esi
or eax, 0xce21477f
or esi, 0x31deb880
and esi, eax
not esi
mov dword [0x461b58], esi
movups xmm0, xmmword [0x46175c]
xorps xmm0, xmmword [0x45dac0]
movups xmmword [0x461b5c], xmm0
movsd xmm0, qword [0x46176c]
xorps xmm0, xmmword [0x45dad0]
movlps qword [0x461b6c], xmm0
mov eax, dword [0x461774]
lea esi, [eax + eax]
and esi, 0xc92eb3e0
neg esi
add eax, esi
add eax, 0xe49759f0
mov dword [0x461b74], eax
movups xmm0, xmmword [0x461778]
xorps xmm0, xmmword [0x45dae0]
movups xmmword [0x461b78], xmm0
movsd xmm0, qword [0x461788]
xorps xmm0, xmmword [0x45daf0]
movlps qword [0x461b88], xmm0
mov eax, 0x72200116
xor eax, dword [0x461790]
mov dword [0x461b90], eax
mov eax, dword [0x461794]
lea esi, [eax + eax]
and esi, 0x5ea2dc3c
neg esi
add eax, esi
add eax, 0x2f516e1e
mov dword [0x461b94], eax
movsd xmm0, qword [0x461798]
xorps xmm0, xmmword [0x45db00]
movlps qword [0x461b98], xmm0
mov eax, dword [0x4617a0]
mov esi, eax
not esi
or esi, 0xb9600056
or eax, 0x469fffa9
and eax, esi
movsd xmm0, qword [0x4617a4]
xorps xmm0, xmmword [0x45db10]
mov dword [0x461ba0], eax
mov eax, 0x7f583c6f
xor eax, dword [0x4617ac]
movlps qword [0x461ba4], xmm0
mov dword [0x461bac], eax
mov eax, dword [0x4617b0]
lea esi, [eax + eax]
and esi, 0x7a1081d6
neg esi
add eax, esi
add eax, 0x3d0840eb
mov dword [0x461bb0], eax
mov eax, 0xebfb50c5
xor eax, dword [0x4617b4]
mov dword [0x461bb4], eax
mov eax, dword [0x4617b8]
mov esi, eax
not esi
or eax, 0x37761a65
or esi, 0xc889e59a
and esi, eax
not esi
mov dword [0x461bb8], esi
mov eax, dword [0x4617bc]
mov esi, eax
not esi
or esi, 0xd17e1929
or eax, 0x2e81e6d6
and eax, esi
mov dword [0x461bbc], eax
movaps xmm0, xmmword [0x4617c0]
xorps xmm0, xmmword [0x45db20]
movaps xmmword [0x461bc0], xmm0
mov eax, 0x2738a05c
xor eax, dword [0x4617d0]
mov dword [0x461bd0], eax
mov eax, dword [0x4617d4]
mov esi, eax
not esi
or eax, 0x63c40435
or esi, 0x9c3bfbca
and esi, eax
not esi
mov dword [0x461bd4], esi
movups xmm0, xmmword [0x4617d8]
xorps xmm0, xmmword [0x45db30]
movups xmmword [0x461bd8], xmm0
mov eax, 0x9db0fd57
xor eax, dword [0x4617e8]
mov dword [0x461be8], eax
movq xmm0, qword [0x4617ec]
movdqa xmm1, xmm0
paddd xmm1, xmm0
pand xmm1, xmmword [0x45db40]
psubd xmm0, xmm1
paddd xmm0, xmmword [0x45db50]
movq qword [0x461bec], xmm0
movups xmm0, xmmword [0x4617f4]
xorps xmm0, xmmword [0x45db60]
movups xmmword [0x461bf4], xmm0
movups xmm0, xmmword [0x461804]
xorps xmm0, xmmword [0x45db70]
movups xmmword [0x461c04], xmm0
mov eax, dword [0x461814]
lea esi, [eax + eax]
and esi, 0xbc54a084
neg esi
add eax, esi
add eax, 0x5e2a5042
movsd xmm0, qword [0x461818]
xorps xmm0, xmmword [0x45db80]
mov dword [0x461c14], eax
mov eax, 0x230d5bb7
xor eax, dword [0x461820]
movlps qword [0x461c18], xmm0
mov dword [0x461c20], eax
mov eax, dword [0x461824]
mov esi, eax
not esi
or eax, 0x54b38eb5
or esi, 0xab4c714a
and esi, eax
not esi
movsd xmm0, qword [0x461828]
xorps xmm0, xmmword [0x45db90]
mov dword [0x461c24], esi
mov eax, 0xbc8a7900
xor eax, dword [0x461830]
movlps qword [0x461c28], xmm0
mov dword [0x461c30], eax
mov eax, dword [0x461834]
lea esi, [eax + eax]
and esi, 0xe47012c6
neg esi
add eax, esi
add eax, 0x72380963
mov dword [0x461c34], eax
movsd xmm0, qword [0x461838]
xorps xmm0, xmmword [0x45dba0]
movlps qword [0x461c38], xmm0
mov eax, dword [0x461840]
lea esi, [eax + eax]
and esi, 0x99019586
neg esi
add eax, esi
add eax, 0x4c80cac3
movsd xmm0, qword [0x461844]
xorps xmm0, xmmword [0x45dbb0]
mov dword [0x461c40], eax
mov eax, 0x129792c3
xor eax, dword [0x46184c]
movlps qword [0x461c44], xmm0
mov dword [0x461c4c], eax
mov eax, dword [0x461850]
mov esi, eax
not esi
or eax, 0xf24c244d
or esi, 0xdb3dbb2
and esi, eax
not esi
movups xmm0, xmmword [0x461854]
xorps xmm0, xmmword [0x45dbc0]
mov dword [0x461c50], esi
movsd xmm1, qword [0x461864]
xorps xmm1, xmmword [0x45dbd0]
movups xmmword [0x461c54], xmm0
movlps qword [0x461c64], xmm1
movq xmm0, qword [0x46186c]
movdqa xmm1, xmm0
paddd xmm1, xmm0
pand xmm1, xmmword [0x45dbe0]
psubd xmm0, xmm1
paddd xmm0, xmmword [0x45dbf0]
movq qword [0x461c6c], xmm0
movups xmm0, xmmword [0x461874]
xorps xmm0, xmmword [0x45dc00]
movups xmmword [0x461c74], xmm0
mov eax, dword [0x461884]
lea esi, [eax + eax]
and esi, 0xe6db11ce
neg esi
add eax, esi
add eax, 0x736d88e7
mov dword [0x461c84], eax
movups xmm0, xmmword [0x461888]
xorps xmm0, xmmword [0x45dc10]
movups xmmword [0x461c88], xmm0
mov eax, 0x6408df52
xor eax, dword [0x461898]
mov dword [0x461c98], eax
mov eax, dword [0x46189c]
lea esi, [eax + eax]
and esi, 0xb8f6f51e
neg esi
add eax, esi
add eax, 0x5c7b7a8f
mov dword [0x461c9c], eax
movaps xmm0, xmmword [0x4618a0]
xorps xmm0, xmmword [0x45dc20]
movaps xmmword [0x461ca0], xmm0
mov eax, 0x4bb7b91e
xor eax, dword [0x4618b0]
mov dword [0x461cb0], eax
movq xmm0, qword [0x4618b4]
movdqa xmm1, xmm0
paddd xmm1, xmm0
pand xmm1, xmmword [0x45dc30]
psubd xmm0, xmm1
paddd xmm0, xmmword [0x45dc40]
movq qword [0x461cb4], xmm0
movups xmm0, xmmword [0x4618bc]
xorps xmm0, xmmword [0x45dc50]
movups xmmword [0x461cbc], xmm0
movups xmm0, xmmword [0x4618cc]
xorps xmm0, xmmword [0x45dc60]
movups xmmword [0x461ccc], xmm0
movsd xmm0, qword [0x4618dc]
xorps xmm0, xmmword [0x45dc70]
movlps qword [0x461cdc], xmm0
mov eax, dword [0x4618e4]
lea esi, [eax + eax]
and esi, 0xf9806424
neg esi
add eax, esi
add eax, 0x7cc03212
movups xmm0, xmmword [0x4618e8]
xorps xmm0, xmmword [str.Yg.J]
mov dword [0x461ce4], eax
movups xmmword [0x461ce8], xmm0
mov eax, dword [0x4618f8]
lea esi, [eax + eax]
and esi, 0xde0d1856
neg esi
add eax, esi
add eax, 0x6f068c2b
mov dword [0x461cf8], eax
movups xmm0, xmmword [0x4618fc]
xorps xmm0, xmmword [0x45dc90]
movups xmmword [str.tf_f_], xmm0
mov eax, 0x2df07692
xor eax, dword [0x46190c]
mov dword [0x461d0c], eax
mov eax, dword [0x461910]
lea esi, [eax + eax]
and esi, 0x23e05a60
neg esi
add eax, esi
add eax, 0x11f02d30
movups xmm0, xmmword [0x461914]
xorps xmm0, xmmword [0x45dca0]
mov dword [0x461d10], eax
movups xmmword [0x461d14], xmm0
mov eax, dword [0x461924]
mov esi, eax
not esi
or esi, 0x6dcad8b5
or eax, 0x9235274a
and eax, esi
mov dword [0x461d24], eax
mov esi, dword [0x461928]
mov eax, esi
not eax
or esi, 0x24bbe6bb
or eax, 0xdb441944
and eax, esi
movq xmm0, qword [0x46192c]
movdqa xmm1, xmm0
paddd xmm1, xmm0
pand xmm1, xmmword [0x45dcb0]
not eax
psubd xmm0, xmm1
paddd xmm0, xmmword [0x45dcc0]
mov dword [0x461d28], eax
mov eax, 0xc89de23a
xor eax, dword [0x461934]
movq qword [0x461d2c], xmm0
mov dword [0x461d34], eax
mov eax, dword [0x461938]
lea esi, [eax + eax]
and esi, 0xb4602386
neg esi
add eax, esi
add eax, 0xda3011c3
mov dword [0x461d38], eax
movups xmm0, xmmword [0x46193c]
xorps xmm0, xmmword [0x45dcd0]
movups xmmword [0x461d3c], xmm0
mov eax, dword [0x46194c]
lea esi, [eax + eax]
and esi, 0x673f2a0e
neg esi
add eax, esi
add eax, 0x339f9507
mov esi, 0xad9f1dce
xor esi, dword [0x461950]
mov dword [0x461d4c], eax
mov dword [0x461d50], esi
mov eax, dword [0x461954]
mov esi, eax
not esi
or esi, 0x653e22bc
or eax, 0x9ac1dd43
and eax, esi
movsd xmm0, qword [0x461958]
xorps xmm0, xmmword [0x45dce0]
movq xmm1, qword [0x461960]
movdqa xmm2, xmm1
paddd xmm2, xmm1
pand xmm2, xmmword [0x45dcf0]
mov dword [0x461d54], eax
psubd xmm1, xmm2
paddd xmm1, xmmword [0x45dd00]
movlps qword [0x461d58], xmm0
movups xmm0, xmmword [0x461968]
xorps xmm0, xmmword [0x45dd10]
movq qword [0x461d60], xmm1
movsd xmm1, qword [0x461978]
xorps xmm1, xmmword [0x45dd20]
movups xmmword [0x461d68], xmm0
movlps qword [0x461d78], xmm1
mov eax, dword [0x461980]
lea esi, [eax + eax]
and esi, 0xc5344b7c
neg esi
add eax, esi
add eax, 0x629a25be
mov dword [0x461d80], eax
mov eax, 0x5ec27459
xor eax, dword [0x461984]
movq xmm0, qword [0x461988]
movdqa xmm1, xmm0
paddd xmm1, xmm0
pand xmm1, xmmword [0x45dd30]
mov dword [0x461d84], eax
psubd xmm0, xmm1
paddd xmm0, xmmword [0x45dd40]
movq qword [0x461d88], xmm0
movaps xmm0, xmmword [0x461990]
xorps xmm0, xmmword [0x45dd50]
mov eax, 0x2c9dd9e4
xor eax, dword [0x4619a0]
movq xmm1, qword [0x4619a4]
movdqa xmm2, xmm1
paddd xmm2, xmm1
pand xmm2, xmmword [0x45dd60]
movaps xmmword [0x461d90], xmm0
psubd xmm1, xmm2
paddd xmm1, xmmword [0x45dd70]
mov dword [0x461da0], eax
mov eax, 0x98a8ec7e
xor eax, dword [0x4619ac]
movq qword [0x461da4], xmm1
mov dword [0x461dac], eax
mov eax, dword [0x4619b0]
lea esi, [eax + eax]
and esi, 0xe2f18298
neg esi
add eax, esi
add eax, 0xf178c14c
mov dword [0x461db0], eax
movsd xmm0, qword [0x4619b4]
xorps xmm0, xmmword [0x45dd80]
movlps qword [0x461db4], xmm0
mov eax, dword [0x4619bc]
lea esi, [eax + eax]
and esi, 0xf9da1e0c
neg esi
add eax, esi
add eax, 0x7ced0f06
movsd xmm0, qword [0x4619c0]
xorps xmm0, xmmword [0x45dd90]
mov dword [str.QM_], eax
mov eax, 0xbf0d2cf4
xor eax, dword [0x4619c8]
movlps qword [0x461dc0], xmm0
mov dword [0x461dc8], eax
movq xmm0, qword [0x4619cc]
movdqa xmm1, xmm0
paddd xmm1, xmm0
pand xmm1, xmmword [0x45dda0]
psubd xmm0, xmm1
paddd xmm0, xmmword [0x45ddb0]
movq qword [0x461dcc], xmm0
mov eax, 0x68abd495
xor eax, dword [0x4619d4]
mov dword [0x461dd4], eax
mov eax, dword [0x4619d8]
lea esi, [eax + eax]
and esi, 0xf8169200
neg esi
add eax, esi
add eax, 0xfc0b4900
mov dword [0x461dd8], eax
movsd xmm0, qword [0x4619dc]
xorps xmm0, xmmword [0x45ddc0]
movlps qword [0x461ddc], xmm0
mov eax, dword [0x4619e4]
mov esi, eax
not esi
or esi, 0xb552e43
or eax, 0xf4aad1bc
and eax, esi
mov dword [0x461de4], eax
movsd xmm0, qword [0x4619e8]
xorps xmm0, xmmword [0x45ddd0]
movlps qword [0x461de8], xmm0
mov esi, dword [esp + 0x14]
mov dword [0x481d50], 1
not edx
cmp ecx, 4
jb 0x403c23
nop dword [eax + eax]
mov eax, edx
shr eax, 8
xor dl, byte [esi]
movzx edx, dl
mov ebx, dword [edx*4 + 0x4619f0]
mov edx, ebx
and edx, eax
add edx, edx
sub ebx, edx
add ebx, eax
mov edx, ebx
shr edx, 8
xor bl, byte [esi + 1]
movzx eax, bl
xor edx, dword [eax*4 + 0x4619f0]
mov eax, edx
shr eax, 8
movzx edi, byte [esi + 2]
or edi, 0x3fffff00
xor edi, edx
or edx, 0xff
and edx, edi
xor eax, dword [edx*4 + 0x4619f0]
mov edx, eax
shr edx, 8
movzx edi, byte [esi + 3]
xor edi, eax
not eax
or eax, 0xff
add eax, edi
xor edx, dword [eax*4 + 0x4619f4]
add esi, 4
add ecx, 0xfffffffc
cmp ecx, 3
ja 0x403bb0
test ecx, ecx
je 0x403c35
test cl, 1
jne 0x403c39
mov edi, ecx
cmp ecx, 1
jne 0x403c55
jmp 0x403c8c
mov eax, edx
jmp 0x403c8c
mov eax, edx
xor dl, byte [esi]
shr eax, 8
movzx edx, dl
xor eax, dword [edx*4 + 0x4619f0]
inc esi
lea edi, [ecx - 1]
mov edx, eax
cmp ecx, 1
je 0x403c8c
xor ecx, ecx
mov eax, edx
nop dword [eax]
mov edx, eax
shr edx, 8
xor al, byte [esi + ecx]
movzx eax, al
xor edx, dword [eax*4 + 0x4619f0]
mov eax, edx
shr eax, 8
xor dl, byte [esi + ecx + 1]
movzx edx, dl
xor eax, dword [edx*4 + 0x4619f0]
add ecx, 2
cmp edi, ecx
jne 0x403c60
not eax
pop esi
pop edi
pop ebx
ret