Function at 0x402ee0
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 [0x48804c]
test eax, eax
jne 0x403afe
movsd xmm0, qword [0x4665f0]
xorps xmm0, xmmword [0x462910]
movlps qword [0x4669f0], xmm0
mov eax, dword [0x4665f8]
lea esi, [eax + eax]
and esi, 0xb827dcb4
neg esi
add eax, esi
add eax, 0xdc13ee5a
movups xmm0, xmmword [0x4665fc]
xorps xmm0, xmmword [0x462920]
mov dword [0x4669f8], eax
movups xmm1, xmmword [0x46660c]
xorps xmm1, xmmword [0x462930]
movups xmmword [0x4669fc], xmm0
movups xmm0, xmmword [0x46661c]
xorps xmm0, xmmword [0x462940]
movups xmmword [0x466a0c], xmm1
movups xmm1, xmmword [0x46662c]
xorps xmm1, xmmword [0x462950]
movups xmmword [0x466a1c], xmm0
movups xmm0, xmmword [0x46663c]
xorps xmm0, xmmword [0x462960]
movups xmmword [0x466a2c], xmm1
movups xmm1, xmmword [0x46664c]
xorps xmm1, xmmword [0x462970]
movups xmmword [0x466a3c], xmm0
mov eax, 0x5f589515
xor eax, dword [0x46665c]
movups xmmword [0x466a4c], xmm1
mov dword [0x466a5c], eax
mov eax, dword [0x466660]
lea esi, [eax + eax]
and esi, 0x72f8f504
neg esi
add eax, esi
add eax, 0x397c7a82
mov dword [0x466a60], eax
mov eax, dword [0x466664]
mov esi, eax
not esi
or esi, 0x231d2f00
or eax, 0xdce2d0ff
and eax, esi
mov dword [0x466a64], eax
mov eax, 0xa6312f2d
xor eax, dword [0x466668]
mov dword [0x466a68], eax
mov eax, dword [0x46666c]
mov esi, eax
not esi
or eax, 0x56139eb9
or esi, 0xa9ec6146
and esi, eax
not esi
mov dword [0x466a6c], esi
movsd xmm0, qword [0x466670]
xorps xmm0, xmmword [0x462980]
movlps qword [0x466a70], xmm0
movdqu xmm0, xmmword [0x466678]
movdqa xmm1, xmm0
paddd xmm1, xmm0
pand xmm1, xmmword [0x462990]
psubd xmm0, xmm1
paddd xmm0, xmmword [0x4629a0]
movdqu xmmword [0x466a78], xmm0
movups xmm0, xmmword [0x466688]
xorps xmm0, xmmword [0x4629b0]
movups xmmword [0x466a88], xmm0
movups xmm0, xmmword [0x466698]
xorps xmm0, xmmword [0x4629c0]
movups xmmword [0x466a98], xmm0
movsd xmm0, qword [0x4666a8]
xorps xmm0, xmmword [0x4629d0]
movlps qword [0x466aa8], xmm0
mov eax, dword [0x4666b0]
lea esi, [eax + eax]
and esi, 0xe0e35df4
neg esi
add eax, esi
add eax, 0xf071aefa
movsd xmm0, qword [0x4666b4]
xorps xmm0, xmmword [0x4629e0]
mov dword [0x466ab0], eax
movlps qword [0x466ab4], xmm0
mov eax, dword [0x4666bc]
lea esi, [eax + eax]
and esi, 0x3a2af692
neg esi
add eax, esi
add eax, 0x9d157b49
mov dword [0x466abc], eax
movsd xmm0, qword [0x4666c0]
xorps xmm0, xmmword [0x4629f0]
movlps qword [0x466ac0], xmm0
mov eax, dword [0x4666c8]
mov esi, eax
not esi
or eax, 0x8abe8cca
or esi, 0x75417335
and esi, eax
not esi
mov dword [0x466ac8], esi
movups xmm0, xmmword [0x4666cc]
xorps xmm0, xmmword [0x462a00]
movups xmmword [0x466acc], xmm0
mov eax, 0x2a9c0e15
xor eax, dword [0x4666dc]
mov dword [0x466adc], eax
mov eax, dword [0x4666e0]
lea esi, [eax + eax]
and esi, 0xcb804430
neg esi
add eax, esi
add eax, 0x65c02218
mov esi, 0x3fbf1e12
xor esi, dword [0x4666e4]
mov dword [0x466ae0], eax
mov dword [0x466ae4], esi
mov eax, dword [0x4666e8]
lea esi, [eax + eax]
and esi, 0x332ed846
neg esi
add eax, esi
add eax, 0x19976c23
mov dword [0x466ae8], eax
movsd xmm0, qword [0x4666ec]
xorps xmm0, xmmword [0x462a10]
movlps qword [0x466aec], xmm0
mov eax, 0x112c3fb5
xor eax, dword [0x4666f4]
mov dword [0x466af4], eax
mov eax, dword [0x4666f8]
lea esi, [eax + eax]
and esi, 0xc2a688f6
neg esi
add eax, esi
add eax, 0x6153447b
movups xmm0, xmmword [0x4666fc]
xorps xmm0, xmmword [0x462a20]
mov dword [0x466af8], eax
movsd xmm1, qword [0x46670c]
xorps xmm1, xmmword [0x462a30]
movups xmmword [0x466afc], xmm0
mov eax, 0xe39bbea1
xor eax, dword [0x466714]
movlps qword [0x466b0c], xmm1
mov dword [0x466b14], eax
mov eax, dword [0x466718]
mov esi, eax
not esi
or eax, 0xaf2eed6b
or esi, 0x50d11294
and esi, eax
not esi
movups xmm0, xmmword [0x46671c]
xorps xmm0, xmmword [0x462a40]
mov dword [str.EK], esi
mov eax, 0x6cd8fb72
xor eax, dword [0x46672c]
movups xmmword [0x466b1c], xmm0
mov dword [0x466b2c], eax
movq xmm0, qword [0x466730]
movdqa xmm1, xmm0
paddd xmm1, xmm0
pand xmm1, xmmword [0x462a50]
psubd xmm0, xmm1
paddd xmm0, xmmword [0x462a60]
movq qword [0x466b30], xmm0
movups xmm0, xmmword [0x466738]
xorps xmm0, xmmword [0x462a70]
movups xmmword [0x466b38], xmm0
movups xmm0, xmmword [0x466748]
xorps xmm0, xmmword [0x462a80]
movups xmmword [0x466b48], xmm0
movups xmm0, xmmword [0x466758]
xorps xmm0, xmmword [0x462a90]
movups xmmword [0x466b58], xmm0
mov eax, 0x297119fb
xor eax, dword [0x466768]
mov dword [0x466b68], eax
mov eax, dword [0x46676c]
mov esi, eax
not esi
or esi, 0x791b8f06
or eax, 0x86e470f9
and eax, esi
movsd xmm0, qword [0x466770]
xorps xmm0, xmmword [0x462aa0]
mov dword [0x466b6c], eax
movlps qword [0x466b70], xmm0
mov eax, dword [0x466778]
lea esi, [eax + eax]
and esi, 0xceb16ccc
neg esi
add eax, esi
add eax, 0x6758b666
mov dword [0x466b78], eax
mov eax, 0x48e2ab6
xor eax, dword [0x46677c]
mov dword [0x466b7c], eax
mov eax, dword [0x466780]
mov esi, eax
not esi
or esi, 0x1ffd448a
or eax, 0xe002bb75
and eax, esi
mov dword [0x466b80], eax
movsd xmm0, qword [0x466784]
xorps xmm0, xmmword [0x462ab0]
movlps qword [0x466b84], xmm0
mov eax, dword [0x46678c]
lea esi, [eax + eax]
and esi, 0x6a950d20
neg esi
add eax, esi
add eax, 0xb54a8690
mov dword [0x466b8c], eax
movaps xmm0, xmmword [0x466790]
xorps xmm0, xmmword [0x462ac0]
movaps xmmword [0x466b90], xmm0
mov eax, 0x3ad40bc4
xor eax, dword [0x4667a0]
mov dword [0x466ba0], eax
mov eax, dword [0x4667a4]
mov esi, eax
not esi
or esi, 0x29e55779
or eax, 0xd61aa886
and eax, esi
movq xmm0, qword [str.q_Fa_]
movdqa xmm1, xmm0
paddd xmm1, xmm0
pand xmm1, xmmword [0x462ad0]
mov dword [0x466ba4], eax
psubd xmm0, xmm1
paddd xmm0, xmmword [0x462ae0]
movq qword [0x466ba8], xmm0
movaps xmm0, xmmword [0x4667b0]
xorps xmm0, xmmword [0x462af0]
movaps xmmword [0x466bb0], xmm0
mov eax, 0xbf6098f1
xor eax, dword [0x4667c0]
mov dword [0x466bc0], eax
mov eax, dword [0x4667c4]
lea esi, [eax + eax]
and esi, 0xaf792012
neg esi
add eax, esi
add eax, 0xd7bc9009
mov dword [0x466bc4], eax
movsd xmm0, qword [0x4667c8]
xorps xmm0, xmmword [0x462b00]
movlps qword [0x466bc8], xmm0
movq xmm0, qword [0x4667d0]
movdqa xmm1, xmm0
paddd xmm1, xmm0
pand xmm1, xmmword [0x462b10]
psubd xmm0, xmm1
paddd xmm0, xmmword [0x462b20]
movq qword [0x466bd0], xmm0
movups xmm0, xmmword [0x4667d8]
xorps xmm0, xmmword [0x462b30]
movups xmmword [0x466bd8], xmm0
mov eax, 0x3c85d7b3
xor eax, dword [0x4667e8]
mov dword [0x466be8], eax
mov eax, dword [0x4667ec]
lea esi, [eax + eax]
and esi, 0x1606829e
neg esi
add eax, esi
add eax, 0xb03414f
movaps xmm0, xmmword [0x4667f0]
xorps xmm0, xmmword [0x462b40]
mov dword [0x466bec], eax
movaps xmm1, xmmword [str._w_v_]
xorps xmm1, xmmword [0x462b50]
movaps xmmword [0x466bf0], xmm0
movsd xmm0, qword [0x466810]
xorps xmm0, xmmword [0x462b60]
movaps xmmword [0x466c00], xmm1
mov eax, 0xe861f8d0
xor eax, dword [0x466818]
movlps qword [0x466c10], xmm0
mov dword [0x466c18], eax
mov eax, dword [str.FkT3]
lea esi, [eax + eax]
and esi, 0x927c63dc
neg esi
add eax, esi
add eax, 0x493e31ee
mov dword [0x466c1c], eax
movsd xmm0, qword [0x466820]
xorps xmm0, xmmword [0x462b70]
movlps qword [0x466c20], xmm0
mov eax, dword [0x466828]
lea esi, [eax + eax]
and esi, 0xdc72120e
neg esi
add eax, esi
add eax, 0xee390907
movsd xmm0, qword [0x46682c]
xorps xmm0, xmmword [0x462b80]
mov dword [0x466c28], eax
movlps qword [0x466c2c], xmm0
mov eax, dword [0x466834]
lea esi, [eax + eax]
and esi, 0x6b5e69bc
neg esi
add eax, esi
add eax, 0x35af34de
mov dword [0x466c34], eax
movups xmm0, xmmword [0x466838]
xorps xmm0, xmmword [0x462b90]
movups xmmword [0x466c38], xmm0
mov eax, 0x1ebb536b
xor eax, dword [0x466848]
mov dword [0x466c48], eax
mov eax, dword [0x46684c]
lea esi, [eax + eax]
and esi, 0xf82e02ea
neg esi
add eax, esi
add eax, 0x7c170175
movsd xmm0, qword [0x466850]
xorps xmm0, xmmword [0x462ba0]
mov dword [0x466c4c], eax
movlps qword [0x466c50], xmm0
mov eax, dword [0x466858]
lea esi, [eax + eax]
and esi, 0xe73cc428
neg esi
add eax, esi
add eax, 0x739e6214
mov dword [0x466c58], eax
movsd xmm0, qword [0x46685c]
xorps xmm0, xmmword [0x462bb0]
movlps qword [0x466c5c], xmm0
mov eax, 0xa523ab0d
xor eax, dword [0x466864]
mov dword [0x466c64], eax
mov eax, dword [0x466868]
lea esi, [eax + eax]
and esi, 0x924d9e6c
neg esi
add eax, esi
add eax, 0x4926cf36
movups xmm0, xmmword [0x46686c]
xorps xmm0, xmmword [0x462bc0]
mov dword [str.__v4TGZ], eax
movsd xmm1, qword [0x46687c]
xorps xmm1, xmmword [0x462bd0]
movups xmmword [0x466c6c], xmm0
movlps qword [0x466c7c], xmm1
mov eax, dword [0x466884]
lea esi, [eax + eax]
and esi, 0x328d31e6
neg esi
add eax, esi
add eax, 0x194698f3
mov dword [0x466c84], eax
movups xmm0, xmmword [0x466888]
xorps xmm0, xmmword [0x462be0]
movups xmmword [0x466c88], xmm0
movups xmm0, xmmword [0x466898]
xorps xmm0, xmmword [0x462bf0]
movups xmmword [0x466c98], xmm0
mov eax, 0x7f0b1035
xor eax, dword [str.eN_]
mov dword [0x466ca8], eax
mov eax, dword [0x4668ac]
lea esi, [eax + eax]
and esi, 0x1fea7e8e
neg esi
add eax, esi
add eax, 0xff53f47
mov esi, 0x89eb633
xor esi, dword [0x4668b0]
mov dword [0x466cac], eax
mov dword [0x466cb0], esi
mov eax, dword [0x4668b4]
lea esi, [eax + eax]
and esi, 0x64fe1a46
neg esi
add eax, esi
add eax, 0x327f0d23
mov dword [0x466cb4], eax
movsd xmm0, qword [0x4668b8]
xorps xmm0, xmmword [0x462c00]
movlps qword [0x466cb8], xmm0
mov eax, dword [0x4668c0]
mov esi, eax
not esi
or eax, 0x40cc5e62
or esi, 0xbf33a19d
and esi, eax
not esi
mov dword [0x466cc0], esi
mov eax, 0xd0ea9a77
xor eax, dword [0x4668c4]
mov dword [0x466cc4], eax
mov eax, dword [0x4668c8]
mov esi, eax
not esi
or eax, 0x5f46ddbd
or esi, 0xa0b92242
and esi, eax
not esi
mov dword [0x466cc8], esi
movups xmm0, xmmword [0x4668cc]
xorps xmm0, xmmword [0x462c10]
movups xmmword [0x466ccc], xmm0
movsd xmm0, qword [0x4668dc]
xorps xmm0, xmmword [0x462c20]
movlps qword [0x466cdc], xmm0
mov eax, dword [0x4668e4]
lea esi, [eax + eax]
and esi, 0x7023ba2a
neg esi
add eax, esi
add eax, 0xb811dd15
movups xmm0, xmmword [0x4668e8]
xorps xmm0, xmmword [0x462c30]
mov dword [0x466ce4], eax
movups xmmword [0x466ce8], xmm0
mov eax, dword [0x4668f8]
lea esi, [eax + eax]
and esi, 0x8e9b04a8
neg esi
add eax, esi
add eax, 0xc74d8254
mov dword [0x466cf8], eax
movsd xmm0, qword [0x4668fc]
xorps xmm0, xmmword [0x462c40]
movq xmm1, qword [0x466904]
movdqa xmm2, xmm1
paddd xmm2, xmm1
pand xmm2, xmmword [0x462c50]
movlps qword [0x466cfc], xmm0
psubd xmm1, xmm2
paddd xmm1, xmmword [0x462c60]
movq qword [0x466d04], xmm1
movups xmm0, xmmword [str.Sn_tE]
xorps xmm0, xmmword [0x462c70]
movups xmmword [0x466d0c], xmm0
movsd xmm0, qword [0x46691c]
xorps xmm0, xmmword [0x462c80]
movlps qword [0x466d1c], xmm0
mov eax, 0x274196d
xor eax, dword [0x466924]
mov dword [0x466d24], eax
mov eax, dword [0x466928]
lea esi, [eax + eax]
and esi, 0x5e0ba0d0
neg esi
add eax, esi
add eax, 0xaf05d068
mov dword [0x466d28], eax
movups xmm0, xmmword [0x46692c]
xorps xmm0, xmmword [0x462c90]
movups xmmword [0x466d2c], xmm0
movsd xmm0, qword [0x46693c]
xorps xmm0, xmmword [0x462ca0]
movlps qword [0x466d3c], xmm0
mov eax, 0x9b4a415
xor eax, dword [0x466944]
mov dword [0x466d44], eax
mov eax, dword [str.gW0ob]
lea esi, [eax + eax]
and esi, 0x71afaa76
neg esi
add eax, esi
add eax, 0x38d7d53b
mov dword [0x466d48], eax
movups xmm0, xmmword [0x46694c]
xorps xmm0, xmmword [0x462cb0]
movups xmmword [0x466d4c], xmm0
mov eax, 0x4fec895e
xor eax, dword [0x46695c]
mov dword [0x466d5c], eax
mov eax, dword [0x466960]
lea esi, [eax + eax]
and esi, 0xaee5dc9c
neg esi
add eax, esi
add eax, 0x5772ee4e
mov dword [0x466d60], eax
mov eax, dword [0x466964]
mov esi, eax
not esi
or eax, 0x52c17173
or esi, 0xad3e8e8c
and esi, eax
not esi
mov dword [0x466d64], esi
mov eax, 0x9dcc7c23
xor eax, dword [0x466968]
mov dword [0x466d68], eax
mov eax, dword [0x46696c]
lea esi, [eax + eax]
and esi, 0xa7e3eaea
neg esi
add eax, esi
add eax, 0x53f1f575
mov dword [0x466d6c], eax
mov eax, 0x5d7e1d56
xor eax, dword [0x466970]
mov dword [0x466d70], eax
mov eax, dword [0x466974]
mov esi, eax
not esi
or esi, 0xac75976f
or eax, 0x538a6890
and eax, esi
mov dword [0x466d74], eax
movsd xmm0, qword [0x466978]
xorps xmm0, xmmword [0x462cc0]
movlps qword [0x466d78], xmm0
mov eax, dword [0x466980]
lea esi, [eax + eax]
and esi, 0x3ab1b52
neg esi
add eax, esi
add eax, 0x81d58da9
movups xmm0, xmmword [0x466984]
xorps xmm0, xmmword [0x462cd0]
mov dword [0x466d80], eax
movups xmm1, xmmword [0x466994]
xorps xmm1, xmmword [0x462ce0]
movups xmmword [0x466d84], xmm0
mov eax, 0x8e09423e
xor eax, dword [0x4669a4]
movups xmmword [0x466d94], xmm1
mov dword [0x466da4], eax
mov eax, dword [0x4669a8]
mov esi, eax
not esi
or eax, 0x90987acc
or esi, 0x6f678533
and esi, eax
not esi
mov eax, 0xe84bee99
xor eax, dword [0x4669ac]
mov dword [0x466da8], esi
mov dword [0x466dac], eax
movq xmm0, qword [0x4669b0]
movdqa xmm1, xmm0
paddd xmm1, xmm0
pand xmm1, xmmword [0x462cf0]
psubd xmm0, xmm1
paddd xmm0, xmmword [0x462d00]
movq qword [0x466db0], xmm0
movups xmm0, xmmword [0x4669b8]
xorps xmm0, xmmword [0x462d10]
movups xmmword [0x466db8], xmm0
movsd xmm0, qword [0x4669c8]
xorps xmm0, xmmword [0x462d20]
movlps qword [0x466dc8], xmm0
mov eax, dword [str.tF__fK]
lea esi, [eax + eax]
and esi, 0x7e7a78b4
neg esi
add eax, esi
add eax, 0xbf3d3c5a
mov dword [0x466dd0], eax
mov eax, 0x8279c1f3
xor eax, dword [0x4669d4]
mov dword [0x466dd4], eax
mov eax, dword [0x4669d8]
lea esi, [eax + eax]
and esi, 0xa8d35732
neg esi
add eax, esi
add eax, 0xd469ab99
mov dword [0x466dd8], eax
movsd xmm0, qword [0x4669dc]
xorps xmm0, xmmword [0x462d30]
movlps qword [0x466ddc], xmm0
mov eax, 0x4a56d7da
xor eax, dword [0x4669e4]
mov dword [0x466de4], eax
movq xmm0, qword [0x4669e8]
movdqa xmm1, xmm0
paddd xmm1, xmm0
pand xmm1, xmmword [0x462d40]
psubd xmm0, xmm1
paddd xmm0, xmmword [0x462d50]
movq qword [0x466de8], xmm0
mov esi, dword [esp + 0x14]
mov dword [0x48804c], 1
not edx
cmp ecx, 4
jb 0x403b90
nop word cs:[eax + eax]
mov eax, edx
shr eax, 8
movzx edi, byte [esi]
xor edi, edx
not edx
or edx, 0xff
add edx, edi
xor eax, dword [edx*4 + 0x4669f4]
mov edx, eax
xor al, byte [esi + 1]
shr edx, 8
movzx eax, al
xor edx, dword [eax*4 + 0x4669f0]
mov eax, edx
shr eax, 8
movzx edi, byte [esi + 2]
mov ebx, edx
and ebx, edi
add edx, edi
add ebx, ebx
sub edx, ebx
movzx edx, dl
xor eax, dword [edx*4 + 0x4669f0]
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 + 0x4669f4]
add esi, 4
add ecx, 0xfffffffc
cmp ecx, 3
ja 0x403b20
test ecx, ecx
je 0x403ba2
test cl, 1
jne 0x403ba6
mov edi, ecx
cmp ecx, 1
jne 0x403bcc
jmp 0x403c10
mov eax, edx
jmp 0x403c10
mov eax, edx
shr eax, 8
xor dl, byte [esi]
movzx edx, dl
mov edx, dword [edx*4 + 0x4669f0]
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 0x403c10
xor ecx, ecx
mov eax, edx
mov edx, eax
shr edx, 8
xor al, byte [esi + ecx]
movzx eax, al
mov eax, dword [eax*4 + 0x4669f0]
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 + 0x4669f0]
mov ebx, edx
and ebx, eax
add eax, edx
add ebx, ebx
sub eax, ebx
add ecx, 2
cmp edi, ecx
jne 0x403bd0
not eax
pop esi
pop edi
pop ebx
ret