Function at 0x402f70
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 [0x458ad8]
test eax, eax
jne 0x403b18
mov eax, 0x4a39d8dc
xor eax, dword [0x4485f0]
mov dword [0x4489f0], eax
mov eax, dword [0x4485f4]
lea esi, [eax + eax]
and esi, 0xede57004
neg esi
add eax, esi
add eax, 0xf6f2b802
mov esi, 0x7142fc5e
xor esi, dword [0x4485f8]
movq xmm0, qword [0x4485fc]
movdqa xmm1, xmm0
paddd xmm1, xmm0
pand xmm1, xmmword [str...._a]
mov dword [0x4489f4], eax
psubd xmm0, xmm1
paddd xmm0, xmmword [0x444910]
mov dword [0x4489f8], esi
movq xmm1, qword [0x448604]
pxor xmm1, xmmword [0x444920]
punpcklqdq xmm0, xmm1
mov eax, 0xe547519
xor eax, dword [0x44860c]
movdqu xmmword [0x4489fc], xmm0
mov dword [0x448a0c], eax
movq xmm0, qword [0x448610]
movdqa xmm1, xmm0
paddd xmm1, xmm0
pand xmm1, xmmword [0x444930]
psubd xmm0, xmm1
paddd xmm0, xmmword [0x444940]
movq qword [0x448a10], xmm0
movups xmm0, xmmword [0x448618]
xorps xmm0, xmmword [0x444950]
movups xmmword [0x448a18], xmm0
movsd xmm0, qword [0x448628]
xorps xmm0, xmmword [0x444960]
movlps qword [0x448a28], xmm0
mov eax, dword [0x448630]
lea esi, [eax + eax]
and esi, 0x9b87cb42
neg esi
add eax, esi
add eax, 0x4dc3e5a1
mov dword [0x448a30], eax
movsd xmm0, qword [0x448634]
xorps xmm0, xmmword [0x444970]
movlps qword [0x448a34], xmm0
mov eax, 0x7e76d3ef
xor eax, dword [0x44863c]
mov dword [0x448a3c], eax
mov eax, dword [0x448640]
mov esi, eax
not esi
or eax, 0x64c670ab
or esi, 0x9b398f54
and esi, eax
not esi
mov dword [0x448a40], esi
mov eax, 0xadb0efa2
xor eax, dword [0x448644]
mov dword [0x448a44], eax
mov eax, dword [0x448648]
lea esi, [eax + eax]
and esi, 0x850a574a
neg esi
add eax, esi
add eax, 0xc2852ba5
mov dword [0x448a48], eax
movsd xmm0, qword [0x44864c]
xorps xmm0, xmmword [0x444980]
movlps qword [0x448a4c], xmm0
mov eax, 0x38063f5f
xor eax, dword [0x448654]
mov dword [0x448a54], eax
movq xmm0, qword [0x448658]
movdqa xmm1, xmm0
paddd xmm1, xmm0
pand xmm1, xmmword [0x444990]
psubd xmm0, xmm1
paddd xmm0, xmmword [0x4449a0]
movq qword [0x448a58], xmm0
mov eax, 0x91b26c7e
xor eax, dword [0x448660]
mov dword [0x448a60], eax
mov eax, dword [0x448664]
lea esi, [eax + eax]
and esi, 0x32f455ea
neg esi
add eax, esi
add eax, 0x997a2af5
movups xmm0, xmmword [0x448668]
xorps xmm0, xmmword [0x4449b0]
mov dword [0x448a64], eax
movsd xmm1, qword [0x448678]
xorps xmm1, xmmword [0x4449c0]
movups xmmword [0x448a68], xmm0
mov eax, 0xa3320c1d
xor eax, dword [0x448680]
movlps qword [0x448a78], xmm1
mov dword [0x448a80], eax
movq xmm0, qword [0x448684]
movdqa xmm1, xmm0
paddd xmm1, xmm0
pand xmm1, xmmword [0x4449d0]
psubd xmm0, xmm1
paddd xmm0, xmmword [0x4449e0]
movq qword [0x448a84], xmm0
movups xmm0, xmmword [0x44868c]
xorps xmm0, xmmword [0x4449f0]
movups xmmword [0x448a8c], xmm0
movups xmm0, xmmword [0x44869c]
xorps xmm0, xmmword [0x444a00]
movups xmmword [0x448a9c], xmm0
movsd xmm0, qword [0x4486ac]
xorps xmm0, xmmword [0x444a10]
movlps qword [0x448aac], xmm0
mov eax, dword [0x4486b4]
mov esi, eax
not esi
or esi, 0xf8a0eb40
or eax, 0x75f14bf
and eax, esi
movups xmm0, xmmword [0x4486b8]
xorps xmm0, xmmword [0x444a20]
mov dword [0x448ab4], eax
movsd xmm1, qword [0x4486c8]
xorps xmm1, xmmword [0x444a30]
movups xmmword [0x448ab8], xmm0
movlps qword [0x448ac8], xmm1
mov eax, dword [0x4486d0]
lea esi, [eax + eax]
and esi, 0xe1d3e602
neg esi
add eax, esi
add eax, 0x70e9f301
mov dword [0x448ad0], eax
mov eax, 0x3ac7e942
xor eax, dword [0x4486d4]
mov dword [0x448ad4], eax
mov eax, dword [0x4486d8]
lea esi, [eax + eax]
and esi, 0xd0e234de
neg esi
add eax, esi
add eax, 0x68711a6f
movups xmm0, xmmword [0x4486dc]
xorps xmm0, xmmword [0x444a40]
mov dword [0x448ad8], eax
movups xmm1, xmmword [0x4486ec]
xorps xmm1, xmmword [0x444a50]
movups xmmword [0x448adc], xmm0
movups xmm0, xmmword [0x4486fc]
xorps xmm0, xmmword [0x444a60]
movups xmmword [0x448aec], xmm1
movups xmmword [0x448afc], xmm0
mov eax, dword [0x44870c]
lea esi, [eax + eax]
and esi, 0xc5461d9c
neg esi
add eax, esi
add eax, 0xe2a30ece
mov dword [0x448b0c], eax
movaps xmm0, xmmword [0x448710]
xorps xmm0, xmmword [0x444a70]
movaps xmmword [0x448b10], xmm0
movaps xmm0, xmmword [0x448720]
xorps xmm0, xmmword [0x444a80]
movaps xmmword [0x448b20], xmm0
movaps xmm0, xmmword [0x448730]
xorps xmm0, xmmword [str.c__]
movaps xmmword [0x448b30], xmm0
movsd xmm0, qword [0x448740]
xorps xmm0, xmmword [0x444aa0]
movlps qword [0x448b40], xmm0
mov eax, 0x849e4a32
xor eax, dword [0x448748]
mov dword [0x448b48], eax
mov eax, dword [0x44874c]
lea esi, [eax + eax]
and esi, 0x52c1bb02
neg esi
add eax, esi
add eax, 0xa960dd81
movaps xmm0, xmmword [0x448750]
xorps xmm0, xmmword [0x444ab0]
mov dword [0x448b4c], eax
movaps xmm1, xmmword [0x448760]
xorps xmm1, xmmword [0x444ac0]
movaps xmmword [0x448b50], xmm0
movaps xmm0, xmmword [0x448770]
xorps xmm0, xmmword [0x444ad0]
movaps xmmword [0x448b60], xmm1
movaps xmm1, xmmword [0x448780]
xorps xmm1, xmmword [0x444ae0]
movaps xmmword [0x448b70], xmm0
movaps xmm0, xmmword [0x448790]
xorps xmm0, xmmword [0x444af0]
movaps xmmword [0x448b80], xmm1
movaps xmm1, xmmword [0x4487a0]
xorps xmm1, xmmword [0x444b00]
movaps xmmword [0x448b90], xmm0
movaps xmm0, xmmword [0x4487b0]
xorps xmm0, xmmword [0x444b10]
movaps xmmword [0x448ba0], xmm1
movaps xmm1, xmmword [0x4487c0]
xorps xmm1, xmmword [0x444b20]
movaps xmmword [0x448bb0], xmm0
movaps xmmword [str.8pZE], xmm1
mov eax, dword [0x4487d0]
mov esi, eax
not esi
or esi, 0x4ac8497e
or eax, 0xb537b681
and eax, esi
movsd xmm0, qword [0x4487d4]
xorps xmm0, xmmword [0x444b30]
movq xmm1, qword [0x4487dc]
movdqa xmm2, xmm1
paddd xmm2, xmm1
pand xmm2, xmmword [0x444b40]
mov dword [0x448bd0], eax
psubd xmm1, xmm2
paddd xmm1, xmmword [0x444b50]
movlps qword [0x448bd4], xmm0
movsd xmm0, qword [0x4487e4]
xorps xmm0, xmmword [0x444b60]
movq qword [0x448bdc], xmm1
mov eax, 0x4df3c4b7
xor eax, dword [0x4487ec]
movlps qword [0x448be4], xmm0
mov dword [0x448bec], eax
mov eax, dword [0x4487f0]
lea esi, [eax + eax]
and esi, 0x39c425ca
neg esi
add eax, esi
add eax, 0x9ce212e5
mov dword [0x448bf0], eax
mov eax, 0x71b5913b
xor eax, dword [0x4487f4]
movq xmm0, qword [0x4487f8]
movdqa xmm1, xmm0
paddd xmm1, xmm0
pand xmm1, xmmword [0x444b70]
mov dword [0x448bf4], eax
psubd xmm0, xmm1
paddd xmm0, xmmword [0x444b80]
movq qword [0x448bf8], xmm0
movaps xmm0, xmmword [0x448800]
xorps xmm0, xmmword [0x444b90]
movaps xmmword [0x448c00], xmm0
movsd xmm0, qword [0x448810]
xorps xmm0, xmmword [0x444ba0]
mov eax, 0x80244d4b
xor eax, dword [0x448818]
movq xmm1, qword [0x44881c]
movdqa xmm2, xmm1
paddd xmm2, xmm1
pand xmm2, xmmword [0x444bb0]
movlps qword [0x448c10], xmm0
psubd xmm1, xmm2
paddd xmm1, xmmword [0x444bc0]
mov dword [0x448c18], eax
mov eax, 0xd82cf620
xor eax, dword [0x448824]
movq qword [0x448c1c], xmm1
mov dword [0x448c24], eax
mov eax, dword [0x448828]
mov esi, eax
not esi
or eax, 0x2150f647
or esi, 0xdeaf09b8
and esi, eax
not esi
mov eax, 0xcd146b83
xor eax, dword [0x44882c]
mov dword [str.g9MZ_I], esi
mov dword [0x448c2c], eax
mov eax, dword [0x448830]
lea esi, [eax + eax]
and esi, 0xc0bd7078
neg esi
add eax, esi
add eax, 0x605eb83c
mov dword [0x448c30], eax
movups xmm0, xmmword [0x448834]
xorps xmm0, xmmword [0x444bd0]
movups xmmword [0x448c34], xmm0
mov eax, dword [0x448844]
lea esi, [eax + eax]
and esi, 0xc77c47a
neg esi
add eax, esi
add eax, 0x63be23d
movups xmm0, xmmword [0x448848]
xorps xmm0, xmmword [0x444be0]
mov dword [0x448c44], eax
movups xmm1, xmmword [0x448858]
xorps xmm1, xmmword [0x444bf0]
movups xmmword [0x448c48], xmm0
movsd xmm0, qword [0x448868]
xorps xmm0, xmmword [0x444c00]
movups xmmword [0x448c58], xmm1
mov eax, 0xce6aea2c
xor eax, dword [0x448870]
movlps qword [0x448c68], xmm0
mov dword [0x448c70], eax
mov eax, dword [0x448874]
mov esi, eax
not esi
or esi, 0xda03efd7
or eax, 0x25fc1028
and eax, esi
mov dword [0x448c74], eax
mov eax, dword [0x448878]
lea esi, [eax + eax]
and esi, 0xa79873c4
neg esi
add eax, esi
add eax, 0xd3cc39e2
mov dword [0x448c78], eax
movsd xmm0, qword [0x44887c]
xorps xmm0, xmmword [0x444c10]
movlps qword [0x448c7c], xmm0
mov eax, 0xc09420db
xor eax, dword [0x448884]
mov dword [0x448c84], eax
mov eax, dword [0x448888]
mov esi, eax
not esi
or esi, 0xcd58b2ce
or eax, 0x32a74d31
and eax, esi
mov esi, 0x23a16a2
xor esi, dword [0x44888c]
mov dword [0x448c88], eax
mov dword [0x448c8c], esi
movq xmm0, qword [0x448890]
movdqa xmm1, xmm0
paddd xmm1, xmm0
pand xmm1, xmmword [0x444c20]
psubd xmm0, xmm1
paddd xmm0, xmmword [0x444c30]
movq qword [0x448c90], xmm0
movups xmm0, xmmword [0x448898]
xorps xmm0, xmmword [0x444c40]
movups xmmword [0x448c98], xmm0
mov eax, 0x1dcacf7e
xor eax, dword [0x4488a8]
mov dword [0x448ca8], eax
mov eax, dword [0x4488ac]
lea esi, [eax + eax]
and esi, 0x8718aa8a
neg esi
add eax, esi
add eax, 0x438c5545
mov dword [0x448cac], eax
movaps xmm0, xmmword [0x4488b0]
xorps xmm0, xmmword [0x444c50]
movaps xmmword [0x448cb0], xmm0
mov eax, dword [0x4488c0]
lea esi, [eax + eax]
and esi, 0xd0872a8
neg esi
add eax, esi
add eax, 0x6843954
mov dword [0x448cc0], eax
movups xmm0, xmmword [0x4488c4]
xorps xmm0, xmmword [0x444c60]
movups xmmword [0x448cc4], xmm0
movups xmm0, xmmword [0x4488d4]
xorps xmm0, xmmword [0x444c70]
movups xmmword [0x448cd4], xmm0
movups xmm0, xmmword [0x4488e4]
xorps xmm0, xmmword [0x444c80]
movups xmmword [0x448ce4], xmm0
movsd xmm0, qword [0x4488f4]
xorps xmm0, xmmword [0x444c90]
movlps qword [0x448cf4], xmm0
mov eax, dword [0x4488fc]
lea esi, [eax + eax]
and esi, 0xb387ace0
neg esi
add eax, esi
add eax, 0x59c3d670
mov dword [0x448cfc], eax
movaps xmm0, xmmword [0x448900]
xorps xmm0, xmmword [0x444ca0]
movaps xmmword [0x448d00], xmm0
movsd xmm0, qword [0x448910]
xorps xmm0, xmmword [0x444cb0]
movlps qword [0x448d10], xmm0
mov eax, dword [0x448918]
lea esi, [eax + eax]
and esi, 0xfc060c5a
neg esi
add eax, esi
add eax, 0xfe03062d
mov dword [0x448d18], eax
mov eax, 0x64d5d88f
xor eax, dword [0x44891c]
mov dword [0x448d1c], eax
mov eax, dword [0x448920]
lea esi, [eax + eax]
and esi, 0x9e8f243c
neg esi
add eax, esi
add eax, 0x4f47921e
mov dword [0x448d20], eax
mov eax, dword [0x448924]
mov esi, eax
not esi
or esi, 0xd025fedf
or eax, 0x2fda0120
and eax, esi
mov dword [0x448d24], eax
mov eax, 0x18ef61a0
xor eax, dword [0x448928]
mov dword [0x448d28], eax
mov eax, dword [0x44892c]
lea esi, [eax + eax]
and esi, 0x69ec0606
neg esi
add eax, esi
add eax, 0x34f60303
movaps xmm0, xmmword [0x448930]
xorps xmm0, xmmword [0x444cc0]
mov dword [0x448d2c], eax
movaps xmmword [0x448d30], xmm0
mov eax, dword [0x448940]
lea esi, [eax + eax]
and esi, 0x2dafad7a
neg esi
add eax, esi
add eax, 0x16d7d6bd
mov dword [0x448d40], eax
mov eax, 0x4daf8c02
xor eax, dword [0x448944]
movq xmm0, qword [0x448948]
movdqa xmm1, xmm0
paddd xmm1, xmm0
pand xmm1, xmmword [0x444cd0]
mov dword [0x448d44], eax
psubd xmm0, xmm1
paddd xmm0, xmmword [0x444ce0]
movq qword [0x448d48], xmm0
movaps xmm0, xmmword [0x448950]
xorps xmm0, xmmword [0x444cf0]
movaps xmmword [0x448d50], xmm0
movsd xmm0, qword [0x448960]
xorps xmm0, xmmword [0x444d00]
movlps qword [0x448d60], xmm0
mov eax, dword [0x448968]
lea esi, [eax + eax]
and esi, 0x931219fa
neg esi
add eax, esi
add eax, 0x49890cfd
mov dword [0x448d68], eax
mov eax, dword [0x44896c]
mov esi, eax
not esi
or esi, 0x99d2fcde
or eax, 0x662d0321
and eax, esi
movsd xmm0, qword [0x448970]
xorps xmm0, xmmword [0x444d10]
mov dword [0x448d6c], eax
mov eax, 0xf8316d25
xor eax, dword [0x448978]
movlps qword [0x448d70], xmm0
mov dword [0x448d78], eax
mov eax, dword [0x44897c]
lea esi, [eax + eax]
and esi, 0x9e62e6fe
neg esi
add eax, esi
add eax, 0xcf31737f
mov dword [0x448d7c], eax
mov eax, 0xb1116507
xor eax, dword [0x448980]
mov dword [0x448d80], eax
mov eax, dword [0x448984]
lea esi, [eax + eax]
and esi, 0xf1a34012
neg esi
add eax, esi
add eax, 0x78d1a009
movsd xmm0, qword [0x448988]
xorps xmm0, xmmword [0x444d20]
mov dword [0x448d84], eax
mov eax, 0xa7fce8ce
xor eax, dword [0x448990]
movlps qword [0x448d88], xmm0
mov dword [0x448d90], eax
mov eax, dword [0x448994]
lea esi, [eax + eax]
and esi, 0xb4959544
neg esi
add eax, esi
add eax, 0xda4acaa2
mov dword [0x448d94], eax
movups xmm0, xmmword [0x448998]
xorps xmm0, xmmword [0x444d30]
movups xmmword [0x448d98], xmm0
mov eax, dword [0x4489a8]
lea esi, [eax + eax]
and esi, 0x26bf7d8a
neg esi
add eax, esi
add eax, 0x135fbec5
movups xmm0, xmmword [0x4489ac]
xorps xmm0, xmmword [0x444d40]
mov dword [0x448da8], eax
movups xmm1, xmmword [0x4489bc]
xorps xmm1, xmmword [0x444d50]
movups xmmword [0x448dac], xmm0
mov eax, 0xfd800c8e
xor eax, dword [0x4489cc]
movups xmmword [0x448dbc], xmm1
mov dword [0x448dcc], eax
mov eax, dword [0x4489d0]
lea esi, [eax + eax]
and esi, 0x31c571d4
neg esi
add eax, esi
add eax, 0x98e2b8ea
mov dword [0x448dd0], eax
movsd xmm0, qword [0x4489d4]
xorps xmm0, xmmword [0x444d60]
movlps qword [0x448dd4], xmm0
mov eax, 0xafeab95e
xor eax, dword [0x4489dc]
mov dword [0x448ddc], eax
mov eax, dword [0x4489e0]
lea esi, [eax + eax]
and esi, 0xbbdeef14
neg esi
add eax, esi
add eax, 0x5def778a
movsd xmm0, qword [0x4489e4]
xorps xmm0, xmmword [0x444d70]
mov dword [0x448de0], eax
movlps qword [0x448de4], xmm0
mov eax, dword [0x4489ec]
lea esi, [eax + eax]
and esi, 0xfe1f1710
neg esi
add eax, esi
add eax, 0xff0f8b88
mov dword [0x448dec], eax
mov esi, dword [esp + 0x14]
mov dword [0x458ad8], 1
not edx
cmp ecx, 4
jb 0x403ba1
nop dword [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 + 0x4489f4]
mov edx, eax
shr edx, 8
xor al, byte [esi + 1]
movzx eax, al
mov ebx, dword [eax*4 + 0x4489f0]
mov eax, ebx
and eax, edx
add eax, eax
sub ebx, eax
add ebx, edx
mov eax, ebx
xor bl, byte [esi + 2]
shr eax, 8
movzx edx, bl
xor eax, dword [edx*4 + 0x4489f0]
mov edx, eax
shr edx, 8
movzx edi, byte [esi + 3]
mov ebx, eax
and ebx, edi
add eax, edi
add ebx, ebx
sub eax, ebx
movzx eax, al
xor edx, dword [eax*4 + 0x4489f0]
add esi, 4
add ecx, 0xfffffffc
cmp ecx, 3
ja 0x403b30
test ecx, ecx
je 0x403bb3
test cl, 1
jne 0x403bb7
mov edi, ecx
cmp ecx, 1
jne 0x403bd3
jmp 0x403c0c
mov eax, edx
jmp 0x403c0c
mov eax, edx
xor dl, byte [esi]
shr eax, 8
movzx edx, dl
xor eax, dword [edx*4 + 0x4489f0]
inc esi
lea edi, [ecx - 1]
mov edx, eax
cmp ecx, 1
je 0x403c0c
xor ecx, ecx
mov eax, edx
nop word [eax + eax]
mov edx, eax
shr edx, 8
xor al, byte [esi + ecx]
movzx eax, al
xor edx, dword [eax*4 + 0x4489f0]
mov eax, edx
shr eax, 8
xor dl, byte [esi + ecx + 1]
movzx edx, dl
xor eax, dword [edx*4 + 0x4489f0]
add ecx, 2
cmp edi, ecx
jne 0x403be0
not eax
pop esi
pop edi
pop ebx
ret