Function at 0x693d4080
Capabilities:
Encode data using xor

Disassembly:
push ebp
push ebx
push edi
push esi
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x14]
mov edx, dword [0x69459388]
test edx, edx
jne 0x693d4d9a
movsd xmm0, qword [0x694375f0]
xorps xmm0, xmmword [0x69433910]
movlps qword [0x694379f0], xmm0
mov edx, dword [0x694375f8]
lea esi, [edx + edx]
and esi, 0xfdfabc76
neg esi
add edx, esi
add edx, 0xfefd5e3b
mov esi, 0xe7a4399f
xor esi, dword [0x694375fc]
mov dword [0x694379f8], edx
mov dword [0x694379fc], esi
mov edx, dword [0x69437600]
lea esi, [edx + edx]
and esi, 0x2e1d51de
neg esi
add edx, esi
add edx, 0x970ea8ef
mov dword [0x69437a00], edx
movsd xmm0, qword [0x69437604]
xorps xmm0, xmmword [0x69433920]
movlps qword [0x69437a04], xmm0
mov edx, 0xde3c6d1f
xor edx, dword [0x6943760c]
mov dword [0x69437a0c], edx
mov edx, dword [0x69437610]
lea esi, [edx + edx]
and esi, 0xff8be2ca
neg esi
add edx, esi
add edx, 0xffc5f165
movups xmm0, xmmword [0x69437614]
xorps xmm0, xmmword [0x69433930]
mov dword [0x69437a10], edx
movups xmm1, xmmword [0x69437624]
xorps xmm1, xmmword [0x69433940]
movups xmmword [str.Windows_10], xmm0
movups xmm0, xmmword [0x69437634]
xorps xmm0, xmmword [0x69433950]
movups xmmword [0x69437a24], xmm1
movups xmmword [0x69437a34], xmm0
mov edx, dword [0x69437644]
lea esi, [edx + edx]
and esi, 0x9a534414
neg esi
add edx, esi
add edx, 0xcd29a20a
mov dword [0x69437a44], edx
mov edx, 0xa0981bed
xor edx, dword [0x69437648]
mov dword [0x69437a48], edx
mov edx, dword [0x6943764c]
lea esi, [edx + edx]
and esi, 0xae2d8c0e
neg esi
add edx, esi
add edx, 0x5716c607
movsd xmm0, qword [0x69437650]
xorps xmm0, xmmword [0x69433960]
mov dword [0x69437a4c], edx
movlps qword [0x69437a50], xmm0
mov edx, dword [0x69437658]
lea esi, [edx + edx]
and esi, 0xf37e291a
neg esi
add edx, esi
add edx, 0xf9bf148d
mov dword [0x69437a58], edx
mov edx, dword [0x6943765c]
mov esi, edx
not esi
or esi, 0x8cf0022
or edx, 0xf730ffdd
and edx, esi
mov dword [0x69437a5c], edx
mov edx, dword [0x69437660]
lea esi, [edx + edx]
and esi, 0xb99d570c
neg esi
add edx, esi
add edx, 0x5cceab86
mov dword [0x69437a60], edx
mov edx, 0xc6d9207b
xor edx, dword [0x69437664]
mov dword [0x69437a64], edx
mov edx, dword [0x69437668]
lea esi, [edx + edx]
and esi, 0xcfb4986e
neg esi
add edx, esi
add edx, 0x67da4c37
mov dword [0x69437a68], edx
movups xmm0, xmmword [0x6943766c]
xorps xmm0, xmmword [0x69433970]
movups xmmword [0x69437a6c], xmm0
movups xmm0, xmmword [0x6943767c]
xorps xmm0, xmmword [0x69433980]
movups xmmword [0x69437a7c], xmm0
mov edx, dword [0x6943768c]
lea esi, [edx + edx]
and esi, 0xf6a46956
neg esi
add edx, esi
add edx, 0x7b5234ab
mov dword [0x69437a8c], edx
movsd xmm0, qword [0x69437690]
xorps xmm0, xmmword [0x69433990]
movlps qword [0x69437a90], xmm0
mov edx, 0xbb5bc6bb
xor edx, dword [0x69437698]
mov dword [0x69437a98], edx
mov edx, dword [0x6943769c]
mov esi, edx
not esi
or edx, 0x81f0eb26
or esi, 0x7e0f14d9
and esi, edx
not esi
mov dword [0x69437a9c], esi
mov edx, dword [0x694376a0]
lea esi, [edx + edx]
and esi, 0x2513a584
neg esi
add edx, esi
add edx, 0x9289d2c2
mov dword [0x69437aa0], edx
mov edx, 0xdd46daa7
xor edx, dword [0x694376a4]
mov dword [0x69437aa4], edx
mov edx, dword [0x694376a8]
mov esi, edx
not esi
or edx, 0x8108ab8
or esi, 0xf7ef7547
and esi, edx
not esi
mov dword [0x69437aa8], esi
movsd xmm0, qword [0x694376ac]
xorps xmm0, xmmword [0x694339a0]
movlps qword [0x69437aac], xmm0
mov edx, dword [0x694376b4]
lea esi, [edx + edx]
and esi, 0xa207ae8c
neg esi
add edx, esi
add edx, 0xd103d746
mov dword [0x69437ab4], edx
movups xmm0, xmmword [0x694376b8]
xorps xmm0, xmmword [0x694339b0]
movups xmm1, xmmword [0x694376c8]
xorps xmm1, xmmword [0x694339c0]
movq xmm2, qword [0x694376d8]
movdqa xmm3, xmm2
paddd xmm3, xmm2
pand xmm3, xmmword [0x694339d0]
movups xmmword [0x69437ab8], xmm0
psubd xmm2, xmm3
paddd xmm2, xmmword [0x694339e0]
movups xmmword [0x69437ac8], xmm1
movaps xmm0, xmmword [0x694376e0]
xorps xmm0, xmmword [0x694339f0]
movq qword [0x69437ad8], xmm2
mov edx, 0x40564953
xor edx, dword [0x694376f0]
movaps xmmword [0x69437ae0], xmm0
mov dword [0x69437af0], edx
mov edx, dword [0x694376f4]
mov esi, edx
not esi
or esi, 0xfbbbdc0f
or edx, 0x44423f0
and edx, esi
mov dword [0x69437af4], edx
movups xmm0, xmmword [0x694376f8]
xorps xmm0, xmmword [0x69433a00]
movups xmmword [0x69437af8], xmm0
mov edx, 0x8f0de55e
xor edx, dword [0x69437708]
mov dword [0x69437b08], edx
mov edx, dword [0x6943770c]
mov esi, edx
not esi
or edx, 0xda68c733
or esi, 0x259738cc
and esi, edx
not esi
mov dword [0x69437b0c], esi
movsd xmm0, qword [0x69437710]
xorps xmm0, xmmword [0x69433a10]
movlps qword [0x69437b10], xmm0
mov edx, dword [0x69437718]
lea esi, [edx + edx]
and esi, 0x19443e16
neg esi
add edx, esi
add edx, 0x8ca21f0b
mov dword [0x69437b18], edx
mov edx, 0x4a60322b
xor edx, dword [0x6943771c]
mov dword [str.GetStdHandle], edx
mov edx, dword [0x69437720]
lea esi, [edx + edx]
and esi, 0x6209563a
neg esi
add edx, esi
add edx, 0x3104ab1d
movsd xmm0, qword [0x69437724]
xorps xmm0, xmmword [0x69433a20]
movq xmm1, qword [0x6943772c]
movdqa xmm2, xmm1
paddd xmm2, xmm1
pand xmm2, xmmword [0x69433a30]
mov dword [0x69437b20], edx
psubd xmm1, xmm2
paddd xmm1, xmmword [0x69433a40]
movlps qword [0x69437b24], xmm0
mov edx, 0x451710df
xor edx, dword [0x69437734]
movq qword [str.QueryPerformanceFrequency], xmm1
mov dword [0x69437b34], edx
mov edx, dword [0x69437738]
lea esi, [edx + edx]
and esi, 0x47f5bb2c
neg esi
add edx, esi
add edx, 0xa3fadd96
mov dword [0x69437b38], edx
movsd xmm0, qword [str.unsupported_feature]
xorps xmm0, xmmword [0x69433a50]
movlps qword [0x69437b3c], xmm0
mov edx, 0x5b894032
xor edx, dword [0x69437744]
mov dword [0x69437b44], edx
mov edx, dword [0x69437748]
lea esi, [edx + edx]
and esi, 0x3957ff3c
neg esi
add edx, esi
add edx, 0x9cabff9e
movups xmm0, xmmword [0x6943774c]
xorps xmm0, xmmword [0x69433a60]
mov dword [str.BitBlt], edx
movups xmm1, xmmword [0x6943775c]
xorps xmm1, xmmword [0x69433a70]
movups xmmword [0x69437b4c], xmm0
movups xmmword [0x69437b5c], xmm1
mov edx, dword [0x6943776c]
mov esi, edx
not esi
or edx, 0x61fc3db1
or esi, 0x9e03c24e
and esi, edx
not esi
mov dword [str.CreateCompatibleDC], esi
mov edx, dword [0x69437770]
lea esi, [edx + edx]
and esi, 0x22f842dc
neg esi
add edx, esi
add edx, 0x917c216e
mov dword [0x69437b70], edx
movsd xmm0, qword [0x69437774]
xorps xmm0, xmmword [0x69433a80]
movlps qword [0x69437b74], xmm0
mov edx, dword [0x6943777c]
mov esi, edx
not esi
or esi, 0x5657c78b
or edx, 0xa9a83874
and edx, esi
mov dword [0x69437b7c], edx
movaps xmm0, xmmword [0x69437780]
xorps xmm0, xmmword [0x69433a90]
movaps xmmword [0x69437b80], xmm0
mov edx, 0xad9f0d3
xor edx, dword [0x69437790]
mov dword [0x69437b90], edx
mov edx, dword [0x69437794]
lea esi, [edx + edx]
and esi, 0x67a9c1b2
neg esi
add edx, esi
add edx, 0xb3d4e0d9
mov dword [0x69437b94], edx
mov edx, 0xd9826f08
xor edx, dword [str.file_not_found]
mov dword [0x69437b98], edx
mov edx, dword [0x6943779c]
lea esi, [edx + edx]
and esi, 0x639c1310
neg esi
add edx, esi
add edx, 0xb1ce0988
mov dword [0x69437b9c], edx
movaps xmm0, xmmword [0x694377a0]
xorps xmm0, xmmword [0x69433aa0]
movaps xmmword [0x69437ba0], xmm0
movaps xmm0, xmmword [0x694377b0]
xorps xmm0, xmmword [0x69433ab0]
movaps xmmword [0x69437bb0], xmm0
mov edx, 0x8ea5479b
xor edx, dword [0x694377c0]
mov dword [0x69437bc0], edx
mov edx, dword [0x694377c4]
lea esi, [edx + edx]
and esi, 0x518cb56c
neg esi
add edx, esi
add edx, 0xa8c65ab6
mov dword [0x69437bc4], edx
movups xmm0, xmmword [0x694377c8]
xorps xmm0, xmmword [0x69433ac0]
movups xmmword [str.SelectObject], xmm0
mov edx, dword [0x694377d8]
lea esi, [edx + edx]
and esi, 0xebb2875e
neg esi
add edx, esi
add edx, 0x75d943af
mov dword [str.GetDC], edx
movups xmm0, xmmword [0x694377dc]
xorps xmm0, xmmword [0x69433ad0]
movups xmmword [0x69437bdc], xmm0
movsd xmm0, qword [0x694377ec]
xorps xmm0, xmmword [0x69433ae0]
movlps qword [0x69437bec], xmm0
mov edx, dword [0x694377f4]
lea esi, [edx + edx]
and esi, 0xedfe8eec
neg esi
add edx, esi
add edx, 0x76ff4776
mov dword [0x69437bf4], edx
movups xmm0, xmmword [0x694377f8]
xorps xmm0, xmmword [0x69433af0]
movups xmmword [0x69437bf8], xmm0
movups xmm0, xmmword [0x69437808]
xorps xmm0, xmmword [0x69433b00]
movups xmmword [0x69437c08], xmm0
mov edx, dword [0x69437818]
lea esi, [edx + edx]
and esi, 0x4f5a654
neg esi
add edx, esi
add edx, 0x827ad32a
mov dword [0x69437c18], edx
movups xmm0, xmmword [0x6943781c]
xorps xmm0, xmmword [0x69433b10]
movups xmmword [0x69437c1c], xmm0
movups xmm0, xmmword [0x6943782c]
xorps xmm0, xmmword [0x69433b20]
movups xmmword [0x69437c2c], xmm0
movsd xmm0, qword [0x6943783c]
xorps xmm0, xmmword [0x69433b30]
movlps qword [0x69437c3c], xmm0
mov edx, dword [0x69437844]
mov esi, edx
not esi
or edx, 0x91aa3832
or esi, 0x6e55c7cd
and esi, edx
not esi
mov dword [0x69437c44], esi
movups xmm0, xmmword [0x69437848]
xorps xmm0, xmmword [0x69433b40]
movups xmmword [0x69437c48], xmm0
movups xmm0, xmmword [0x69437858]
xorps xmm0, xmmword [0x69433b50]
movups xmmword [0x69437c58], xmm0
mov edx, dword [0x69437868]
lea esi, [edx + edx]
and esi, 0xcb6bc132
neg esi
add edx, esi
add edx, 0x65b5e099
mov dword [0x69437c68], edx
movups xmm0, xmmword [0x6943786c]
xorps xmm0, xmmword [0x69433b60]
movups xmm1, xmmword [0x6943787c]
xorps xmm1, xmmword [0x69433b70]
movq xmm2, qword [0x6943788c]
movdqa xmm3, xmm2
paddd xmm3, xmm2
pand xmm3, xmmword [0x69433b80]
movups xmmword [0x69437c6c], xmm0
psubd xmm2, xmm3
paddd xmm2, xmmword [0x69433b90]
movups xmmword [0x69437c7c], xmm1
mov edx, 0xa56052d
xor edx, dword [0x69437894]
movq qword [0x69437c8c], xmm2
mov dword [0x69437c94], edx
mov edx, dword [0x69437898]
lea esi, [edx + edx]
and esi, 0xdb882188
neg esi
add edx, esi
add edx, 0x6dc410c4
mov dword [0x69437c98], edx
movsd xmm0, qword [0x6943789c]
xorps xmm0, xmmword [0x69433ba0]
movlps qword [0x69437c9c], xmm0
mov edx, 0x20c8769
xor edx, dword [0x694378a4]
mov dword [0x69437ca4], edx
mov edx, dword [0x694378a8]
lea esi, [edx + edx]
and esi, 0x94ec8718
neg esi
add edx, esi
add edx, 0x4a76438c
movsd xmm0, qword [0x694378ac]
xorps xmm0, xmmword [0x69433bb0]
mov dword [0x69437ca8], edx
movlps qword [0x69437cac], xmm0
mov edx, dword [str.file_close_failed]
lea esi, [edx + edx]
and esi, 0x98b0c194
neg esi
add edx, esi
add edx, 0xcc5860ca
mov dword [0x69437cb4], edx
movsd xmm0, qword [0x694378b8]
xorps xmm0, xmmword [0x69433bc0]
movlps qword [0x69437cb8], xmm0
mov edx, 0xd5eb0b6a
xor edx, dword [0x694378c0]
movq xmm0, qword [0x694378c4]
movdqa xmm1, xmm0
paddd xmm1, xmm0
pand xmm1, xmmword [0x69433bd0]
mov dword [0x69437cc0], edx
psubd xmm0, xmm1
paddd xmm0, xmmword [0x69433be0]
movq qword [0x69437cc4], xmm0
movsd xmm0, qword [0x694378cc]
xorps xmm0, xmmword [0x69433bf0]
movlps qword [0x69437ccc], xmm0
mov edx, 0x16947c6e
xor edx, dword [0x694378d4]
mov dword [0x69437cd4], edx
mov edx, dword [0x694378d8]
lea esi, [edx + edx]
and esi, 0x86901008
neg esi
add edx, esi
add edx, 0x43480804
mov dword [0x69437cd8], edx
movups xmm0, xmmword [0x694378dc]
xorps xmm0, xmmword [0x69433c00]
movups xmmword [0x69437cdc], xmm0
movsd xmm0, qword [0x694378ec]
xorps xmm0, xmmword [0x69433c10]
movlps qword [0x69437cec], xmm0
movq xmm0, qword [0x694378f4]
movdqa xmm1, xmm0
paddd xmm1, xmm0
pand xmm1, xmmword [0x69433c20]
psubd xmm0, xmm1
paddd xmm0, xmmword [0x69433c30]
movq qword [0x69437cf4], xmm0
movups xmm0, xmmword [0x694378fc]
xorps xmm0, xmmword [0x69433c40]
movups xmmword [0x69437cfc], xmm0
mov edx, 0xfc50c389
xor edx, dword [0x6943790c]
mov dword [0x69437d0c], edx
mov edx, dword [0x69437910]
mov esi, edx
not esi
or edx, 0xd669e551
or esi, 0x29961aae
and esi, edx
not esi
mov dword [0x69437d10], esi
movups xmm0, xmmword [0x69437914]
xorps xmm0, xmmword [0x69433c50]
movups xmmword [0x69437d14], xmm0
mov edx, dword [0x69437924]
lea esi, [edx + edx]
and esi, 0xab8d912
neg esi
add edx, esi
add edx, 0x855c6c89
mov esi, 0x3015d3c7
xor esi, dword [0x69437928]
mov dword [0x69437d24], edx
mov dword [0x69437d28], esi
mov edx, dword [0x6943792c]
mov esi, edx
not esi
or esi, 0xb0f77b1a
or edx, 0x4f0884e5
and edx, esi
mov esi, 0xe8f9e36a
xor esi, dword [0x69437930]
movq xmm0, qword [0x69437934]
movdqa xmm1, xmm0
paddd xmm1, xmm0
pand xmm1, xmmword [0x69433c60]
mov dword [0x69437d2c], edx
psubd xmm0, xmm1
paddd xmm0, xmmword [0x69433c70]
mov dword [0x69437d30], esi
movups xmm1, xmmword [0x6943793c]
xorps xmm1, xmmword [0x69433c80]
movq qword [0x69437d34], xmm0
mov edx, 0xc935646a
xor edx, dword [str.Windows_7]
movups xmmword [0x69437d3c], xmm1
mov dword [0x69437d4c], edx
mov edx, dword [0x69437950]
mov esi, edx
not esi
or esi, 0xdb460269
or edx, 0x24b9fd96
movq xmm0, qword [0x69437954]
movdqa xmm1, xmm0
paddd xmm1, xmm0
pand xmm1, xmmword [0x69433c90]
and edx, esi
psubd xmm0, xmm1
paddd xmm0, xmmword [0x69433ca0]
mov dword [0x69437d50], edx
movsd xmm1, qword [0x6943795c]
xorps xmm1, xmmword [0x69433cb0]
movq qword [0x69437d54], xmm0
mov edx, 0x3147de6b
xor edx, dword [0x69437964]
movlps qword [0x69437d5c], xmm1
mov dword [0x69437d64], edx
mov edx, dword [0x69437968]
lea esi, [edx + edx]
and esi, 0x766abfb2
neg esi
add edx, esi
add edx, 0xbb355fd9
mov dword [0x69437d68], edx
mov edx, 0xc17cb5a1
xor edx, dword [0x6943796c]
movq xmm0, qword [0x69437970]
movdqa xmm1, xmm0
paddd xmm1, xmm0
pand xmm1, xmmword [0x69433cc0]
mov dword [0x69437d6c], edx
psubd xmm0, xmm1
paddd xmm0, xmmword [0x69433cd0]
movq qword [0x69437d70], xmm0
movups xmm0, xmmword [0x69437978]
xorps xmm0, xmmword [0x69433ce0]
movups xmmword [0x69437d78], xmm0
mov edx, 0x31deccef
xor edx, dword [0x69437988]
mov dword [0x69437d88], edx
mov edx, dword [0x6943798c]
lea esi, [edx + edx]
and esi, 0x87457dcc
neg esi
add edx, esi
add edx, 0xc3a2bee6
mov dword [0x69437d8c], edx
movaps xmm0, xmmword [0x69437990]
xorps xmm0, xmmword [0x69433cf0]
movaps xmmword [0x69437d90], xmm0
movaps xmm0, xmmword [0x694379a0]
xorps xmm0, xmmword [0x69433d00]
movaps xmmword [0x69437da0], xmm0
mov edx, 0x6a20f0fe
xor edx, dword [str.Windows_Server_2012_R2]
mov dword [0x69437db0], edx
mov edx, dword [0x694379b4]
lea esi, [edx + edx]
and esi, 0xcdd941d6
neg esi
add edx, esi
add edx, 0x66eca0eb
mov dword [0x69437db4], edx
movups xmm0, xmmword [0x694379b8]
xorps xmm0, xmmword [0x69433d10]
mov edx, 0xa4b1767
xor edx, dword [0x694379c8]
movq xmm1, qword [0x694379cc]
movdqa xmm2, xmm1
paddd xmm2, xmm1
pand xmm2, xmmword [0x69433d20]
movups xmmword [0x69437db8], xmm0
psubd xmm1, xmm2
paddd xmm1, xmmword [0x69433d30]
mov dword [0x69437dc8], edx
movsd xmm0, qword [0x694379d4]
xorps xmm0, xmmword [0x69433d40]
movq qword [0x69437dcc], xmm1
mov edx, 0xa6b37398
xor edx, dword [0x694379dc]
movlps qword [0x69437dd4], xmm0
mov dword [0x69437ddc], edx
mov edx, dword [0x694379e0]
mov esi, edx
not esi
or edx, 0xd8d87b97
or esi, 0x27278468
and esi, edx
not esi
movsd xmm0, qword [0x694379e4]
xorps xmm0, xmmword [0x69433d50]
mov dword [0x69437de0], esi
movlps qword [0x69437de4], xmm0
mov edx, dword [0x694379ec]
lea esi, [edx + edx]
and esi, 0x41a14f18
neg esi
add edx, esi
add edx, 0x20d0a78c
mov dword [0x69437dec], edx
mov edx, dword [esp + 0x18]
mov dword [0x69459388], 1
not ecx
cmp eax, 4
jb 0x693d4e27
nop
mov ebx, ecx
xor cl, byte [edx]
shr ebx, 8
movzx ecx, cl
xor ebx, dword [ecx*4 + 0x694379f0]
mov ecx, ebx
xor bl, byte [edx + 1]
shr ecx, 8
movzx esi, bl
xor ecx, dword [esi*4 + 0x694379f0]
movzx ebx, byte [edx + 2]
mov esi, ecx
and esi, ebx
add ebx, ecx
add esi, esi
sub ebx, esi
movzx esi, bl
mov esi, dword [esi*4 + 0x694379f0]
shr ecx, 8
mov edi, esi
and edi, ecx
add ecx, esi
add edi, edi
sub ecx, edi
movzx esi, byte [edx + 3]
mov edi, ecx
and edi, esi
add edi, edi
sub esi, edi
add esi, ecx
shr ecx, 8
mov edi, esi
not edi
or edi, 0xff
add edi, esi
xor ecx, dword [edi*4 + 0x694379f4]
add edx, 4
add eax, 0xfffffffc
cmp eax, 3
ja 0x693d4db0
test eax, eax
je 0x693d4e38
test al, 1
jne 0x693d4e3c
mov esi, eax
cmp eax, 1
jne 0x693d4e63
jmp 0x693d4eb2
mov ebx, ecx
jmp 0x693d4eb2
mov ebx, ecx
shr ebx, 8
movzx esi, byte [edx]
mov edi, ecx
and edi, esi
add ecx, esi
add edi, edi
sub ecx, edi
movzx ecx, cl
xor ebx, dword [ecx*4 + 0x694379f0]
inc edx
lea esi, [eax - 1]
mov ecx, ebx
cmp eax, 1
je 0x693d4eb2
xor eax, eax
mov ebx, ecx
nop word [eax + eax]
mov ecx, ebx
shr ecx, 8
movzx edi, byte [edx + eax]
mov ebp, ebx
and ebp, edi
add ebx, edi
add ebp, ebp
sub ebx, ebp
movzx edi, bl
xor ecx, dword [edi*4 + 0x694379f0]
mov ebx, ecx
shr ebx, 8
movzx edi, byte [edx + eax + 1]
mov ebp, ecx
and ebp, edi
add ecx, edi
add ebp, ebp
sub ecx, ebp
movzx ecx, cl
xor ebx, dword [ecx*4 + 0x694379f0]
add eax, 2
cmp esi, eax
jne 0x693d4e70
lea eax, [ebx + ebx]
not eax
add eax, ebx
pop esi
pop edi
pop ebx
pop ebp
ret