Function at 0x403400
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 [0x48057c]
test eax, eax
jne 0x403fff
movaps xmm0, xmmword [0x4605f0]
xorps xmm0, xmmword [0x45c910]
movaps xmmword [0x4609f0], xmm0
mov eax, dword [0x460600]
mov esi, eax
not esi
or esi, 0x9fc6409d
or eax, 0x6039bf62
and eax, esi
movups xmm0, xmmword [0x460604]
xorps xmm0, xmmword [0x45c920]
mov dword [0x460a00], eax
movups xmm1, xmmword [0x460614]
xorps xmm1, xmmword [0x45c930]
movups xmmword [0x460a04], xmm0
movups xmm0, xmmword [0x460624]
xorps xmm0, xmmword [0x45c940]
movups xmmword [0x460a14], xmm1
movsd xmm1, qword [0x460634]
xorps xmm1, xmmword [0x45c950]
movups xmmword [0x460a24], xmm0
mov eax, 0x1da14754
xor eax, dword [0x46063c]
movlps qword [0x460a34], xmm1
mov dword [0x460a3c], eax
mov eax, dword [0x460640]
mov esi, eax
not esi
or eax, 0x3d9079c2
or esi, 0xc26f863d
and esi, eax
not esi
mov dword [0x460a40], esi
mov eax, dword [0x460644]
mov esi, eax
not esi
or esi, 0x58dd295f
or eax, 0xa722d6a0
and eax, esi
mov dword [0x460a44], eax
mov eax, dword [0x460648]
lea esi, [eax + eax]
and esi, 0x4878e2d0
neg esi
add eax, esi
add eax, 0x243c7168
mov dword [0x460a48], eax
movq xmm1, qword [0x46064c]
pcmpeqd xmm2, xmm2
movdqa xmm0, xmm1
por xmm1, xmmword [0x45c960]
pxor xmm0, xmm2
por xmm0, xmmword [0x45c970]
pand xmm0, xmm1
pxor xmm0, xmm2
movq xmm1, qword [0x460654]
pxor xmm1, xmmword [0x45c980]
punpcklqdq xmm0, xmm1
mov eax, 0x89463b3f
xor eax, dword [0x46065c]
movdqu xmmword [0x460a4c], xmm0
mov dword [0x460a5c], eax
mov eax, dword [0x460660]
lea esi, [eax + eax]
and esi, 0xc312eb54
neg esi
add eax, esi
add eax, 0xe18975aa
mov dword [0x460a60], eax
movups xmm0, xmmword [0x460664]
xorps xmm0, xmmword [0x45c990]
movups xmmword [0x460a64], xmm0
movsd xmm0, qword [0x460674]
xorps xmm0, xmmword [0x45c9a0]
movlps qword [0x460a74], xmm0
mov eax, dword [0x46067c]
lea esi, [eax + eax]
and esi, 0x46376378
neg esi
add eax, esi
add eax, 0x231bb1bc
movsd xmm0, qword [0x460680]
xorps xmm0, xmmword [0x45c9b0]
mov dword [0x460a7c], eax
movlps qword [0x460a80], xmm0
mov eax, dword [0x460688]
lea esi, [eax + eax]
and esi, 0x68e7844e
neg esi
add eax, esi
add eax, 0x3473c227
mov dword [0x460a88], eax
movups xmm0, xmmword [0x46068c]
xorps xmm0, xmmword [0x45c9c0]
movups xmmword [0x460a8c], xmm0
mov eax, dword [0x46069c]
lea esi, [eax + eax]
and esi, 0x51c7cbe2
neg esi
add eax, esi
add eax, 0xa8e3e5f1
mov dword [0x460a9c], eax
mov eax, dword [0x4606a0]
mov esi, eax
not esi
or esi, 0xa4e59f20
or eax, 0x5b1a60df
and eax, esi
mov dword [0x460aa0], eax
movups xmm0, xmmword [0x4606a4]
xorps xmm0, xmmword [0x45c9d0]
movups xmmword [0x460aa4], xmm0
movups xmm0, xmmword [0x4606b4]
xorps xmm0, xmmword [0x45c9e0]
movups xmmword [0x460ab4], xmm0
movsd xmm0, qword [0x4606c4]
xorps xmm0, xmmword [0x45c9f0]
movlps qword [0x460ac4], xmm0
mov eax, dword [0x4606cc]
lea esi, [eax + eax]
and esi, 0xe7b4faca
neg esi
add eax, esi
add eax, 0x73da7d65
mov dword [0x460acc], eax
movaps xmm0, xmmword [0x4606d0]
xorps xmm0, xmmword [0x45ca00]
movaps xmmword [0x460ad0], xmm0
mov eax, 0x24ce1f18
xor eax, dword [0x4606e0]
mov dword [0x460ae0], eax
mov eax, dword [0x4606e4]
lea esi, [eax + eax]
and esi, 0xdb476838
neg esi
add eax, esi
add eax, 0xeda3b41c
mov dword [0x460ae4], eax
movups xmm0, xmmword [0x4606e8]
xorps xmm0, xmmword [0x45ca10]
movups xmmword [0x460ae8], xmm0
movsd xmm0, qword [0x4606f8]
xorps xmm0, xmmword [0x45ca20]
movlps qword [0x460af8], xmm0
mov eax, dword [0x460700]
lea esi, [eax + eax]
and esi, 0xb398ae58
neg esi
add eax, esi
add eax, 0x59cc572c
mov dword [0x460b00], eax
movsd xmm0, qword [0x460704]
xorps xmm0, xmmword [0x45ca30]
movlps qword [0x460b04], xmm0
mov eax, 0x48eb0e54
xor eax, dword [0x46070c]
mov dword [0x460b0c], eax
movdqa xmm0, xmmword [0x460710]
movdqa xmm1, xmm0
paddd xmm1, xmm0
pand xmm1, xmmword [0x45ca40]
psubd xmm0, xmm1
paddd xmm0, xmmword [0x45ca50]
movdqa xmmword [0x460b10], xmm0
movaps xmm0, xmmword [0x460720]
xorps xmm0, xmmword [0x45ca60]
movq xmm1, qword [0x460730]
movdqa xmm2, xmm1
paddd xmm2, xmm1
pand xmm2, xmmword [0x45ca70]
movaps xmmword [0x460b20], xmm0
psubd xmm1, xmm2
paddd xmm1, xmmword [0x45ca80]
movq qword [0x460b30], xmm1
movups xmm0, xmmword [0x460738]
xorps xmm0, xmmword [0x45ca90]
movups xmmword [0x460b38], xmm0
movsd xmm0, qword [0x460748]
xorps xmm0, xmmword [0x45caa0]
mov eax, 0x59ca3b1f
xor eax, dword [0x460750]
movq xmm1, qword [0x460754]
movdqa xmm2, xmm1
paddd xmm2, xmm1
pand xmm2, xmmword [0x45cab0]
movlps qword [0x460b48], xmm0
psubd xmm1, xmm2
paddd xmm1, xmmword [0x45cac0]
mov dword [0x460b50], eax
movsd xmm0, qword [0x46075c]
xorps xmm0, xmmword [0x45cad0]
movq qword [0x460b54], xmm1
movlps qword [str.1P3_n], xmm0
movq xmm0, qword [0x460764]
movdqa xmm1, xmm0
paddd xmm1, xmm0
pand xmm1, xmmword [0x45cae0]
psubd xmm0, xmm1
paddd xmm0, xmmword [0x45caf0]
movq qword [0x460b64], xmm0
movups xmm0, xmmword [0x46076c]
xorps xmm0, xmmword [0x45cb00]
movups xmmword [0x460b6c], xmm0
movups xmm0, xmmword [0x46077c]
xorps xmm0, xmmword [0x45cb10]
movups xmmword [0x460b7c], xmm0
movsd xmm0, qword [0x46078c]
xorps xmm0, xmmword [0x45cb20]
movlps qword [0x460b8c], xmm0
mov eax, dword [0x460794]
mov esi, eax
not esi
or esi, 0x1c9e218f
or eax, 0xe361de70
and eax, esi
movups xmm0, xmmword [0x460798]
xorps xmm0, xmmword [0x45cb30]
mov dword [0x460b94], eax
mov eax, 0xef01da24
xor eax, dword [0x4607a8]
movups xmmword [0x460b98], xmm0
mov dword [0x460ba8], eax
mov eax, dword [0x4607ac]
lea esi, [eax + eax]
and esi, 0xc6daf478
neg esi
add eax, esi
add eax, 0x636d7a3c
mov dword [0x460bac], eax
movsd xmm0, qword [0x4607b0]
xorps xmm0, xmmword [0x45cb40]
movlps qword [0x460bb0], xmm0
mov eax, 0xee377b14
xor eax, dword [0x4607b8]
mov dword [0x460bb8], eax
mov eax, dword [0x4607bc]
lea esi, [eax + eax]
and esi, 0xa1ba3d5c
neg esi
add eax, esi
add eax, 0x50dd1eae
movaps xmm0, xmmword [0x4607c0]
xorps xmm0, xmmword [0x45cb50]
mov dword [0x460bbc], eax
mov eax, 0xaf408618
xor eax, dword [0x4607d0]
movaps xmmword [0x460bc0], xmm0
mov dword [0x460bd0], eax
mov eax, dword [str.NWf]
lea esi, [eax + eax]
and esi, 0xfd2eea98
neg esi
add eax, esi
add eax, 0x7e97754c
mov dword [0x460bd4], eax
movsd xmm0, qword [0x4607d8]
xorps xmm0, xmmword [0x45cb60]
movlps qword [0x460bd8], xmm0
mov eax, 0x4f1a8e84
xor eax, dword [0x4607e0]
mov dword [0x460be0], eax
mov eax, dword [0x4607e4]
lea esi, [eax + eax]
and esi, 0xc896c856
neg esi
add eax, esi
add eax, 0x644b642b
movups xmm0, xmmword [0x4607e8]
xorps xmm0, xmmword [0x45cb70]
mov dword [0x460be4], eax
movups xmm1, xmmword [0x4607f8]
xorps xmm1, xmmword [0x45cb80]
movups xmmword [0x460be8], xmm0
movups xmm0, xmmword [0x460808]
xorps xmm0, xmmword [0x45cb90]
movups xmmword [0x460bf8], xmm1
movups xmm1, xmmword [0x460818]
xorps xmm1, xmmword [0x45cba0]
movups xmmword [0x460c08], xmm0
mov eax, 0x3ec7060b
xor eax, dword [0x460828]
movups xmmword [0x460c18], xmm1
mov dword [0x460c28], eax
mov eax, dword [0x46082c]
lea esi, [eax + eax]
and esi, 0x837897d6
neg esi
add eax, esi
add eax, 0xc1bc4beb
mov dword [0x460c2c], eax
movsd xmm0, qword [0x460830]
xorps xmm0, xmmword [0x45cbb0]
movlps qword [0x460c30], xmm0
mov eax, 0xd25a261b
xor eax, dword [0x460838]
mov dword [0x460c38], eax
mov eax, dword [0x46083c]
lea esi, [eax + eax]
and esi, 0xd4e64e6c
neg esi
add eax, esi
add eax, 0xea732736
movaps xmm0, xmmword [0x460840]
xorps xmm0, xmmword [0x45cbc0]
mov dword [0x460c3c], eax
movaps xmm1, xmmword [0x460850]
xorps xmm1, xmmword [0x45cbd0]
movaps xmmword [0x460c40], xmm0
movaps xmmword [0x460c50], xmm1
mov eax, dword [0x460860]
lea esi, [eax + eax]
and esi, 0x6940b33a
neg esi
add eax, esi
add eax, 0x34a0599d
mov dword [0x460c60], eax
mov eax, 0xd64c47df
xor eax, dword [0x460864]
mov dword [0x460c64], eax
mov eax, dword [0x460868]
mov esi, eax
not esi
or esi, 0xd8473eae
or eax, 0x27b8c151
and eax, esi
mov dword [0x460c68], eax
mov eax, dword [0x46086c]
lea esi, [eax + eax]
and esi, 0xbf111322
neg esi
add eax, esi
add eax, 0x5f888991
mov dword [0x460c6c], eax
movaps xmm0, xmmword [0x460870]
xorps xmm0, xmmword [str.95u]
movaps xmmword [0x460c70], xmm0
movaps xmm0, xmmword [0x460880]
xorps xmm0, xmmword [0x45cbf0]
mov eax, 0xb4f2f808
xor eax, dword [0x460890]
movq xmm1, qword [0x460894]
movdqa xmm2, xmm1
paddd xmm2, xmm1
pand xmm2, xmmword [0x45cc00]
movaps xmmword [0x460c80], xmm0
psubd xmm1, xmm2
paddd xmm1, xmmword [0x45cc10]
mov dword [0x460c90], eax
movsd xmm0, qword [0x46089c]
xorps xmm0, xmmword [0x45cc20]
movq qword [0x460c94], xmm1
movlps qword [0x460c9c], xmm0
movq xmm0, qword [0x4608a4]
movdqa xmm1, xmm0
paddd xmm1, xmm0
pand xmm1, xmmword [0x45cc30]
psubd xmm0, xmm1
paddd xmm0, xmmword [0x45cc40]
movq qword [0x460ca4], xmm0
movups xmm0, xmmword [str.y2V]
xorps xmm0, xmmword [0x45cc50]
movups xmmword [str.fQev], xmm0
movups xmm0, xmmword [0x4608bc]
xorps xmm0, xmmword [0x45cc60]
movups xmmword [0x460cbc], xmm0
movups xmm0, xmmword [0x4608cc]
xorps xmm0, xmmword [0x45cc70]
movups xmmword [0x460ccc], xmm0
movups xmm0, xmmword [0x4608dc]
xorps xmm0, xmmword [0x45cc80]
movups xmmword [0x460cdc], xmm0
mov eax, 0xfdab243b
xor eax, dword [0x4608ec]
mov dword [0x460cec], eax
movq xmm0, qword [0x4608f0]
movdqa xmm1, xmm0
paddd xmm1, xmm0
pand xmm1, xmmword [0x45cc90]
psubd xmm0, xmm1
paddd xmm0, xmmword [0x45cca0]
movq qword [0x460cf0], xmm0
mov eax, 0x487581a1
xor eax, dword [0x4608f8]
mov dword [0x460cf8], eax
mov eax, dword [0x4608fc]
lea esi, [eax + eax]
and esi, 0xaebf3d48
neg esi
add eax, esi
add eax, 0xd75f9ea4
movaps xmm0, xmmword [0x460900]
xorps xmm0, xmmword [0x45ccb0]
mov dword [0x460cfc], eax
movsd xmm1, qword [0x460910]
xorps xmm1, xmmword [0x45ccc0]
movaps xmmword [0x460d00], xmm0
movlps qword [0x460d10], xmm1
mov eax, dword [0x460918]
lea esi, [eax + eax]
and esi, 0xa2386ba8
neg esi
add eax, esi
add eax, 0x511c35d4
mov dword [0x460d18], eax
movups xmm0, xmmword [0x46091c]
xorps xmm0, xmmword [0x45ccd0]
movups xmmword [0x460d1c], xmm0
mov eax, 0x46984de1
xor eax, dword [0x46092c]
mov dword [0x460d2c], eax
mov eax, dword [0x460930]
mov esi, eax
not esi
or eax, 0x870988a7
or esi, 0x78f67758
and esi, eax
not esi
mov dword [0x460d30], esi
mov eax, dword [0x460934]
lea esi, [eax + eax]
and esi, 0xc4c02712
neg esi
add eax, esi
add eax, 0xe2601389
mov esi, 0x1cf29495
xor esi, dword [str.m_tBTfp]
mov dword [0x460d34], eax
mov dword [0x460d38], esi
mov eax, dword [0x46093c]
lea esi, [eax + eax]
and esi, 0xdf79ae58
neg esi
add eax, esi
add eax, 0x6fbcd72c
mov dword [0x460d3c], eax
mov eax, 0x61046744
xor eax, dword [0x460940]
mov dword [0x460d40], eax
mov eax, dword [0x460944]
lea esi, [eax + eax]
and esi, 0x29ea9fd2
neg esi
add eax, esi
add eax, 0x14f54fe9
movsd xmm0, qword [0x460948]
xorps xmm0, xmmword [0x45cce0]
mov dword [0x460d44], eax
movlps qword [0x460d48], xmm0
mov eax, dword [0x460950]
mov esi, eax
not esi
or esi, 0x1615222e
or eax, 0xe9eaddd1
and eax, esi
mov dword [0x460d50], eax
mov eax, dword [0x460954]
lea esi, [eax + eax]
and esi, 0x8f014ac4
neg esi
add eax, esi
add eax, 0x4780a562
mov dword [0x460d54], eax
mov eax, 0x46d7a91b
xor eax, dword [0x460958]
mov dword [0x460d58], eax
movq xmm0, qword [0x46095c]
movdqa xmm1, xmm0
paddd xmm1, xmm0
pand xmm1, xmmword [0x45ccf0]
psubd xmm0, xmm1
paddd xmm0, xmmword [0x45cd00]
movq qword [0x460d5c], xmm0
movsd xmm0, qword [0x460964]
xorps xmm0, xmmword [0x45cd10]
movlps qword [0x460d64], xmm0
mov eax, dword [0x46096c]
lea esi, [eax + eax]
and esi, 0x8bd5f8da
neg esi
add eax, esi
add eax, 0xc5eafc6d
mov esi, 0xb612fb69
xor esi, dword [0x460970]
mov dword [0x460d6c], eax
mov dword [0x460d70], esi
mov eax, dword [0x460974]
lea esi, [eax + eax]
and esi, 0xe94bb67a
neg esi
add eax, esi
add eax, 0x74a5db3d
mov dword [0x460d74], eax
mov eax, dword [0x460978]
mov esi, eax
not esi
or esi, 0xae410dd0
or eax, 0x51bef22f
and eax, esi
mov dword [0x460d78], eax
movups xmm0, xmmword [0x46097c]
xorps xmm0, xmmword [0x45cd20]
movups xmmword [0x460d7c], xmm0
movsd xmm0, qword [0x46098c]
xorps xmm0, xmmword [0x45cd30]
movlps qword [str._A__], xmm0
mov eax, 0xdd2bb12e
xor eax, dword [0x460994]
mov dword [0x460d94], eax
mov eax, dword [0x460998]
lea esi, [eax + eax]
and esi, 0xdb1ee1d8
neg esi
add eax, esi
add eax, 0xed8f70ec
mov dword [0x460d98], eax
movsd xmm0, qword [0x46099c]
xorps xmm0, xmmword [0x45cd40]
movlps qword [0x460d9c], xmm0
mov eax, 0x8cfe3dd7
xor eax, dword [0x4609a4]
mov dword [0x460da4], eax
mov eax, dword [0x4609a8]
mov esi, eax
not esi
or esi, 0xb00f1da0
or eax, 0x4ff0e25f
and eax, esi
mov dword [0x460da8], eax
mov eax, 0xf4191b52
xor eax, dword [0x4609ac]
mov dword [0x460dac], eax
mov eax, dword [0x4609b0]
mov esi, eax
not esi
or esi, 0x255b7acd
or eax, 0xdaa48532
and eax, esi
mov dword [0x460db0], eax
movups xmm0, xmmword [0x4609b4]
xorps xmm0, xmmword [0x45cd50]
movups xmmword [0x460db4], xmm0
mov eax, dword [0x4609c4]
mov esi, eax
not esi
or esi, 0x358c3067
or eax, 0xca73cf98
and eax, esi
mov esi, 0x3b75c92c
xor esi, dword [0x4609c8]
mov dword [0x460dc4], eax
mov dword [0x460dc8], esi
mov eax, dword [0x4609cc]
lea esi, [eax + eax]
and esi, 0x6849c1cc
neg esi
add eax, esi
add eax, 0x3424e0e6
mov dword [0x460dcc], eax
mov eax, 0x44c3bdb3
xor eax, dword [0x4609d0]
mov dword [0x460dd0], eax
mov eax, dword [0x4609d4]
lea esi, [eax + eax]
and esi, 0xa63890b0
neg esi
add eax, esi
add eax, 0x531c4858
mov esi, 0x5829d98f
xor esi, dword [0x4609d8]
mov dword [0x460dd4], eax
mov dword [0x460dd8], esi
mov eax, dword [0x4609dc]
lea esi, [eax + eax]
and esi, 0xc08ec9f4
neg esi
add eax, esi
add eax, 0xe04764fa
mov dword [0x460ddc], eax
movaps xmm0, xmmword [0x4609e0]
xorps xmm0, xmmword [0x45cd60]
movaps xmmword [0x460de0], xmm0
mov esi, dword [esp + 0x14]
mov dword [0x48057c], 1
not edx
cmp ecx, 4
jb 0x404098
nop dword [eax + eax]
mov eax, edx
xor dl, byte [esi]
shr eax, 8
movzx edx, dl
xor eax, dword [edx*4 + 0x4609f0]
movzx edx, byte [esi + 1]
xor edx, eax
mov edi, eax
not edi
or edi, 0xff
add edi, edx
mov edx, dword [edi*4 + 0x4609f4]
shr eax, 8
lea ebx, [edx + eax]
and eax, edx
add eax, eax
sub ebx, eax
mov edx, ebx
shr edx, 8
xor bl, byte [esi + 2]
movzx eax, bl
mov eax, dword [eax*4 + 0x4609f0]
mov edi, edx
and edi, eax
add edi, edi
sub eax, edi
add eax, edx
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 + 0x4609f4]
add esi, 4
add ecx, 0xfffffffc
cmp ecx, 3
ja 0x404020
test ecx, ecx
je 0x4040aa
test cl, 1
jne 0x4040ae
mov edi, ecx
cmp ecx, 1
jne 0x4040d4
jmp 0x40411f
mov eax, edx
jmp 0x40411f
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 + 0x4609f4]
inc esi
lea edi, [ecx - 1]
mov edx, eax
cmp ecx, 1
je 0x40411f
xor ecx, ecx
mov eax, edx
nop dword [eax + eax]
mov edx, eax
shr edx, 8
movzx ebx, byte [esi + ecx]
xor ebx, eax
not eax
or eax, 0xff
add eax, ebx
xor edx, dword [eax*4 + 0x4609f4]
mov eax, edx
shr eax, 8
movzx ebx, byte [esi + ecx + 1]
xor ebx, edx
not edx
or edx, 0xff
add edx, ebx
xor eax, dword [edx*4 + 0x4609f4]
add ecx, 2
cmp edi, ecx
jne 0x4040e0
not eax
pop esi
pop edi
pop ebx
ret