Function at 0x402f70
Capabilities:
Encode data using xor

Disassembly:
push ebx
push edi
push esi
mov ecx, dword [esp + 0x18]
mov eax, dword [esp + 0x10]
mov edx, dword [0x4843b4]
test edx, edx
jne 0x403c2d
mov edx, 0xd2095849
xor edx, dword [0x4635f0]
mov dword [0x4639f0], edx
mov edx, dword [0x4635f4]
lea esi, [edx + edx]
and esi, 0xc0dce144
neg esi
add edx, esi
add edx, 0x606e70a2
mov dword [0x4639f4], edx
mov edx, 0xd4c51b10
xor edx, dword [0x4635f8]
mov dword [0x4639f8], edx
mov edx, dword [0x4635fc]
lea esi, [edx + edx]
and esi, 0x4e31b4ac
neg esi
add edx, esi
add edx, 0x2718da56
movaps xmm0, xmmword [0x463600]
xorps xmm0, xmmword [0x45f910]
mov dword [0x4639fc], edx
movaps xmm1, xmmword [0x463610]
xorps xmm1, xmmword [0x45f920]
movaps xmmword [0x463a00], xmm0
movaps xmmword [0x463a10], xmm1
mov edx, dword [0x463620]
lea esi, [edx + edx]
and esi, 0x543267a0
neg esi
add edx, esi
add edx, 0x2a1933d0
mov dword [0x463a20], edx
movsd xmm0, qword [0x463624]
xorps xmm0, xmmword [0x45f930]
movlps qword [0x463a24], xmm0
mov edx, 0x6247443f
xor edx, dword [0x46362c]
mov dword [0x463a2c], edx
mov edx, dword [0x463630]
lea esi, [edx + edx]
and esi, 0xa66aec52
neg esi
add edx, esi
add edx, 0x53357629
movups xmm0, xmmword [0x463634]
xorps xmm0, xmmword [0x45f940]
mov dword [0x463a30], edx
movdqu xmm1, xmmword [0x463644]
pxor xmm1, xmmword [0x45f950]
movups xmmword [0x463a34], xmm0
movsd xmm0, qword [0x463654]
xorps xmm0, xmmword [0x45f960]
movdqu xmmword [0x463a44], xmm1
movlps qword [0x463a54], xmm0
mov edx, dword [0x46365c]
lea esi, [edx + edx]
and esi, 0x193792c
neg esi
add edx, esi
add edx, 0xc9bc96
mov dword [0x463a5c], edx
movsd xmm0, qword [0x463660]
xorps xmm0, xmmword [0x45f970]
movlps qword [0x463a60], xmm0
mov edx, 0x5a847425
xor edx, dword [0x463668]
mov dword [0x463a68], edx
mov edx, dword [0x46366c]
mov esi, edx
not esi
or esi, 0x19461de4
or edx, 0xe6b9e21b
and edx, esi
mov dword [0x463a6c], edx
mov edx, 0x769d3da2
xor edx, dword [0x463670]
mov dword [0x463a70], edx
mov edx, dword [0x463674]
lea esi, [edx + edx]
and esi, 0xb8135ba6
neg esi
add edx, esi
add edx, 0xdc09add3
mov dword [0x463a74], edx
mov edx, 0x3091f0c8
xor edx, dword [0x463678]
mov dword [0x463a78], edx
movq xmm0, qword [0x46367c]
pcmpeqd xmm1, xmm1
pxor xmm1, xmm0
por xmm1, xmmword [0x45f980]
por xmm0, xmmword [0x45f990]
pand xmm0, xmm1
movq xmm1, qword [0x463684]
pxor xmm1, xmmword [0x45f9a0]
punpcklqdq xmm0, xmm1
movdqu xmmword [0x463a7c], xmm0
mov edx, dword [0x46368c]
lea esi, [edx + edx]
and esi, 0xbe695fa4
neg esi
add edx, esi
add edx, 0x5f34afd2
mov dword [0x463a8c], edx
mov edx, 0xc26da41
xor edx, dword [0x463690]
mov dword [0x463a90], edx
mov edx, dword [0x463694]
lea esi, [edx + edx]
and esi, 0x6c59d9ea
neg esi
add edx, esi
add edx, 0x362cecf5
mov esi, 0x7de4a8ba
xor esi, dword [0x463698]
mov dword [0x463a94], edx
mov dword [0x463a98], esi
mov edx, dword [0x46369c]
lea esi, [edx + edx]
and esi, 0xcde1f46
neg esi
add edx, esi
add edx, 0x66f0fa3
mov dword [0x463a9c], edx
movsd xmm0, qword [0x4636a0]
xorps xmm0, xmmword [0x45f9b0]
movlps qword [0x463aa0], xmm0
mov edx, dword [0x4636a8]
lea esi, [edx + edx]
and esi, 0x2f12dcc
neg esi
add edx, esi
add edx, 0x817896e6
movsd xmm0, qword [0x4636ac]
xorps xmm0, xmmword [0x45f9c0]
mov dword [0x463aa8], edx
movlps qword [0x463aac], xmm0
mov edx, dword [0x4636b4]
mov esi, edx
not esi
or esi, 0xe9ba00c1
or edx, 0x1645ff3e
and edx, esi
mov dword [0x463ab4], edx
movsd xmm0, qword [0x4636b8]
xorps xmm0, xmmword [0x45f9d0]
movlps qword [0x463ab8], xmm0
mov edx, 0xb477124
xor edx, dword [0x4636c0]
mov dword [0x463ac0], edx
mov edx, dword [0x4636c4]
lea esi, [edx + edx]
and esi, 0x1975d5e
neg esi
add edx, esi
add edx, 0x80cbaeaf
mov dword [0x463ac4], edx
movups xmm0, xmmword [0x4636c8]
xorps xmm0, xmmword [0x45f9e0]
movups xmmword [0x463ac8], xmm0
movups xmm0, xmmword [0x4636d8]
xorps xmm0, xmmword [0x45f9f0]
movups xmmword [0x463ad8], xmm0
mov edx, dword [0x4636e8]
lea esi, [edx + edx]
and esi, 0xc4923d04
neg esi
add edx, esi
add edx, 0x62491e82
mov dword [0x463ae8], edx
movups xmm0, xmmword [0x4636ec]
xorps xmm0, xmmword [0x45fa00]
movups xmmword [0x463aec], xmm0
mov edx, dword [0x4636fc]
lea esi, [edx + edx]
and esi, 0x709d75a2
neg esi
add edx, esi
add edx, 0x384ebad1
mov dword [0x463afc], edx
movaps xmm0, xmmword [0x463700]
xorps xmm0, xmmword [0x45fa10]
movaps xmmword [0x463b00], xmm0
mov edx, dword [0x463710]
lea esi, [edx + edx]
and esi, 0x6344a17a
neg esi
add edx, esi
add edx, 0xb1a250bd
mov dword [0x463b10], edx
movups xmm0, xmmword [0x463714]
xorps xmm0, xmmword [0x45fa20]
movups xmmword [0x463b14], xmm0
movups xmm0, xmmword [0x463724]
xorps xmm0, xmmword [0x45fa30]
movups xmmword [0x463b24], xmm0
movsd xmm0, qword [0x463734]
xorps xmm0, xmmword [0x45fa40]
mov edx, 0x68d4a7f2
xor edx, dword [0x46373c]
movq xmm1, qword [str.nj5]
movdqa xmm2, xmm1
paddd xmm2, xmm1
pand xmm2, xmmword [0x45fa50]
movlps qword [0x463b34], xmm0
psubd xmm1, xmm2
paddd xmm1, xmmword [0x45fa60]
mov dword [0x463b3c], edx
movsd xmm0, qword [0x463748]
xorps xmm0, xmmword [0x45fa70]
movq qword [0x463b40], xmm1
movlps qword [0x463b48], xmm0
mov edx, dword [0x463750]
mov esi, edx
not esi
or esi, 0xeef82502
or edx, 0x1107dafd
and edx, esi
mov dword [0x463b50], edx
movups xmm0, xmmword [0x463754]
xorps xmm0, xmmword [0x45fa80]
movups xmmword [0x463b54], xmm0
movsd xmm0, qword [0x463764]
xorps xmm0, xmmword [0x45fa90]
movlps qword [0x463b64], xmm0
mov edx, dword [0x46376c]
mov esi, edx
not esi
or esi, 0xfc6ce198
or edx, 0x3931e67
and edx, esi
mov dword [0x463b6c], edx
mov edx, 0xae2e8cc0
xor edx, dword [0x463770]
mov dword [0x463b70], edx
mov edx, dword [0x463774]
lea esi, [edx + edx]
and esi, 0x189c1e3c
neg esi
add edx, esi
add edx, 0xc4e0f1e
movups xmm0, xmmword [0x463778]
xorps xmm0, xmmword [0x45faa0]
mov dword [0x463b74], edx
movups xmmword [0x463b78], xmm0
mov edx, dword [0x463788]
lea esi, [edx + edx]
and esi, 0xba53f4d4
neg esi
add edx, esi
add edx, 0x5d29fa6a
mov dword [0x463b88], edx
movups xmm0, xmmword [0x46378c]
xorps xmm0, xmmword [0x45fab0]
movups xmmword [0x463b8c], xmm0
movups xmm0, xmmword [0x46379c]
xorps xmm0, xmmword [0x45fac0]
movups xmmword [0x463b9c], xmm0
mov edx, dword [0x4637ac]
lea esi, [edx + edx]
and esi, 0x5b8959fc
neg esi
add edx, esi
add edx, 0x2dc4acfe
movsd xmm0, qword [0x4637b0]
xorps xmm0, xmmword [0x45fad0]
mov dword [0x463bac], edx
mov edx, 0x39efcc7d
xor edx, dword [0x4637b8]
movlps qword [0x463bb0], xmm0
mov dword [0x463bb8], edx
mov edx, dword [0x4637bc]
lea esi, [edx + edx]
and esi, 0xb6d9d402
neg esi
add edx, esi
add edx, 0x5b6cea01
mov dword [0x463bbc], edx
movaps xmm0, xmmword [0x4637c0]
xorps xmm0, xmmword [str.oyo_f]
movaps xmmword [0x463bc0], xmm0
mov edx, dword [0x4637d0]
mov esi, edx
not esi
or edx, 0x823b3b8b
or esi, 0x7dc4c474
and esi, edx
not esi
mov dword [0x463bd0], esi
movsd xmm0, qword [0x4637d4]
xorps xmm0, xmmword [0x45faf0]
movlps qword [0x463bd4], xmm0
mov edx, 0x2fca998f
xor edx, dword [0x4637dc]
mov dword [0x463bdc], edx
mov edx, dword [0x4637e0]
lea esi, [edx + edx]
and esi, 0xc2242bcc
neg esi
add edx, esi
add edx, 0xe11215e6
movsd xmm0, qword [0x4637e4]
xorps xmm0, xmmword [0x45fb00]
mov dword [0x463be0], edx
movlps qword [str.Gs], xmm0
mov edx, dword [0x4637ec]
lea esi, [edx + edx]
and esi, 0xb56d2608
neg esi
add edx, esi
add edx, 0x5ab69304
mov dword [0x463bec], edx
movaps xmm0, xmmword [0x4637f0]
xorps xmm0, xmmword [0x45fb10]
movaps xmmword [0x463bf0], xmm0
mov edx, 0xc6130596
xor edx, dword [0x463800]
movq xmm0, qword [0x463804]
movdqa xmm1, xmm0
paddd xmm1, xmm0
pand xmm1, xmmword [0x45fb20]
mov dword [0x463c00], edx
psubd xmm0, xmm1
paddd xmm0, xmmword [0x45fb30]
movq qword [str.sM_v], xmm0
mov edx, dword [0x46380c]
mov esi, edx
not esi
or edx, 0xb264648a
or esi, 0x4d9b9b75
and esi, edx
not esi
mov dword [0x463c0c], esi
movaps xmm0, xmmword [0x463810]
xorps xmm0, xmmword [0x45fb40]
movaps xmmword [0x463c10], xmm0
movsd xmm0, qword [0x463820]
xorps xmm0, xmmword [0x45fb50]
movlps qword [0x463c20], xmm0
mov edx, dword [0x463828]
lea esi, [edx + edx]
and esi, 0xb67be6c
neg esi
add edx, esi
add edx, 0x5b3df36
mov dword [0x463c28], edx
movups xmm0, xmmword [0x46382c]
xorps xmm0, xmmword [0x45fb60]
movups xmmword [0x463c2c], xmm0
movups xmm0, xmmword [0x46383c]
xorps xmm0, xmmword [0x45fb70]
movups xmmword [0x463c3c], xmm0
mov edx, dword [0x46384c]
lea esi, [edx + edx]
and esi, 0xc3c058dc
neg esi
add edx, esi
add edx, 0xe1e02c6e
mov dword [0x463c4c], edx
movaps xmm0, xmmword [0x463850]
xorps xmm0, xmmword [0x45fb80]
movaps xmmword [0x463c50], xmm0
movaps xmm0, xmmword [0x463860]
xorps xmm0, xmmword [0x45fb90]
movaps xmmword [0x463c60], xmm0
movaps xmm0, xmmword [0x463870]
xorps xmm0, xmmword [0x45fba0]
movaps xmmword [0x463c70], xmm0
movaps xmm0, xmmword [0x463880]
xorps xmm0, xmmword [0x45fbb0]
movaps xmmword [0x463c80], xmm0
movaps xmm0, xmmword [0x463890]
xorps xmm0, xmmword [0x45fbc0]
movaps xmmword [0x463c90], xmm0
mov edx, 0xd2a80abc
xor edx, dword [0x4638a0]
mov dword [0x463ca0], edx
mov edx, dword [0x4638a4]
lea esi, [edx + edx]
and esi, 0x7e392e94
neg esi
add edx, esi
add edx, 0xbf1c974a
mov dword [0x463ca4], edx
movsd xmm0, qword [0x4638a8]
xorps xmm0, xmmword [0x45fbd0]
movlps qword [0x463ca8], xmm0
mov edx, 0xb8adc4d9
xor edx, dword [0x4638b0]
mov dword [0x463cb0], edx
mov edx, dword [0x4638b4]
lea esi, [edx + edx]
and esi, 0x558e4b90
neg esi
add edx, esi
add edx, 0xaac725c8
mov dword [0x463cb4], edx
movsd xmm0, qword [0x4638b8]
xorps xmm0, xmmword [0x45fbe0]
movlps qword [0x463cb8], xmm0
mov edx, 0x447141b
xor edx, dword [0x4638c0]
mov dword [0x463cc0], edx
mov edx, dword [0x4638c4]
lea esi, [edx + edx]
and esi, 0x279d9afc
neg esi
add edx, esi
add edx, 0x93cecd7e
mov dword [0x463cc4], edx
movups xmm0, xmmword [0x4638c8]
xorps xmm0, xmmword [0x45fbf0]
movups xmmword [0x463cc8], xmm0
movsd xmm0, qword [0x4638d8]
xorps xmm0, xmmword [0x45fc00]
movlps qword [0x463cd8], xmm0
movq xmm0, qword [0x4638e0]
movdqa xmm1, xmm0
paddd xmm1, xmm0
pand xmm1, xmmword [0x45fc10]
psubd xmm0, xmm1
paddd xmm0, xmmword [0x45fc20]
movq qword [0x463ce0], xmm0
mov edx, 0xe71e6e05
xor edx, dword [0x4638e8]
mov dword [0x463ce8], edx
mov edx, dword [0x4638ec]
mov esi, edx
not esi
or esi, 0xbb179432
or edx, 0x44e86bcd
and edx, esi
mov dword [0x463cec], edx
mov edx, 0xbb6ff68
xor edx, dword [0x4638f0]
mov dword [str.Vq_vs], edx
mov edx, dword [0x4638f4]
lea esi, [edx + edx]
and esi, 0xc82eed78
neg esi
add edx, esi
add edx, 0xe41776bc
mov dword [0x463cf4], edx
movsd xmm0, qword [0x4638f8]
xorps xmm0, xmmword [0x45fc30]
movlps qword [0x463cf8], xmm0
mov edx, dword [0x463900]
lea esi, [edx + edx]
and esi, 0x1b7634d8
neg esi
add edx, esi
add edx, 0xdbb1a6c
mov dword [0x463d00], edx
movups xmm0, xmmword [0x463904]
xorps xmm0, xmmword [0x45fc40]
movups xmmword [0x463d04], xmm0
movups xmm0, xmmword [0x463914]
xorps xmm0, xmmword [0x45fc50]
movups xmmword [0x463d14], xmm0
movups xmm0, xmmword [0x463924]
xorps xmm0, xmmword [0x45fc60]
movups xmmword [0x463d24], xmm0
movups xmm0, xmmword [0x463934]
xorps xmm0, xmmword [0x45fc70]
movups xmmword [0x463d34], xmm0
movups xmm0, xmmword [0x463944]
xorps xmm0, xmmword [0x45fc80]
movups xmmword [0x463d44], xmm0
movsd xmm0, qword [0x463954]
xorps xmm0, xmmword [0x45fc90]
movlps qword [0x463d54], xmm0
mov edx, dword [0x46395c]
mov esi, edx
not esi
or edx, 0xdb9b377f
or esi, 0x2464c880
and esi, edx
not esi
mov dword [0x463d5c], esi
movaps xmm0, xmmword [0x463960]
xorps xmm0, xmmword [0x45fca0]
movaps xmmword [0x463d60], xmm0
mov edx, dword [0x463970]
mov esi, edx
not esi
or edx, 0xf65a389b
or esi, 0x9a5c764
and esi, edx
not esi
mov dword [0x463d70], esi
mov edx, 0xbb53945e
xor edx, dword [0x463974]
mov dword [0x463d74], edx
mov edx, dword [0x463978]
lea esi, [edx + edx]
and esi, 0x54aac3d2
neg esi
add edx, esi
add edx, 0xaa5561e9
mov dword [0x463d78], edx
movq xmm0, qword [0x463984]
movdqa xmm1, xmm0
paddd xmm1, xmm0
pand xmm1, xmmword [0x45fcc0]
psubd xmm0, xmm1
movsd xmm1, qword [0x46397c]
xorps xmm1, xmmword [0x45fcb0]
paddd xmm0, xmmword [0x45fcd0]
movlps qword [0x463d7c], xmm1
movups xmm1, xmmword [0x46398c]
xorps xmm1, xmmword [0x45fce0]
movq qword [0x463d84], xmm0
movups xmmword [0x463d8c], xmm1
mov edx, dword [0x46399c]
lea esi, [edx + edx]
and esi, 0x1b49aea
neg esi
add edx, esi
add edx, 0xda4d75
mov dword [0x463d9c], edx
movsd xmm0, qword [0x4639a0]
xorps xmm0, xmmword [0x45fcf0]
movlps qword [0x463da0], xmm0
mov edx, 0x119b6fc3
xor edx, dword [0x4639a8]
mov dword [0x463da8], edx
mov edx, dword [0x4639ac]
lea esi, [edx + edx]
and esi, 0x89428196
neg esi
add edx, esi
add edx, 0x44a140cb
movsd xmm0, qword [0x4639b0]
xorps xmm0, xmmword [0x45fd00]
mov dword [0x463dac], edx
movlps qword [0x463db0], xmm0
mov edx, dword [str.Q_f]
lea esi, [edx + edx]
and esi, 0xeed13ec2
neg esi
add edx, esi
add edx, 0xf7689f61
mov dword [0x463db8], edx
movsd xmm0, qword [0x4639bc]
xorps xmm0, xmmword [0x45fd10]
movlps qword [0x463dbc], xmm0
mov edx, dword [0x4639c4]
lea esi, [edx + edx]
and esi, 0xa0b61f74
neg esi
add edx, esi
add edx, 0xd05b0fba
movsd xmm0, qword [0x4639c8]
xorps xmm0, xmmword [0x45fd20]
mov dword [0x463dc4], edx
mov edx, 0x70cce0da
xor edx, dword [0x4639d0]
movlps qword [0x463dc8], xmm0
mov dword [0x463dd0], edx
mov edx, dword [0x4639d4]
lea esi, [edx + edx]
and esi, 0x7af72490
neg esi
add edx, esi
add edx, 0xbd7b9248
mov dword [0x463dd4], edx
mov edx, 0x73bd4420
xor edx, dword [0x4639d8]
movq xmm0, qword [0x4639dc]
movdqa xmm1, xmm0
paddd xmm1, xmm0
pand xmm1, xmmword [0x45fd30]
mov dword [0x463dd8], edx
psubd xmm0, xmm1
paddd xmm0, xmmword [0x45fd40]
movq qword [0x463ddc], xmm0
mov edx, dword [0x4639e4]
mov esi, edx
not esi
or edx, 0x2027e6ea
or esi, 0xdfd81915
and esi, edx
not esi
mov dword [0x463de4], esi
mov edx, dword [0x4639e8]
mov esi, edx
not esi
or esi, 0x356dd808
or edx, 0xca9227f7
and edx, esi
mov dword [0x463de8], edx
mov edx, 0x3199b62c
xor edx, dword [0x4639ec]
mov dword [0x463dec], edx
mov edi, dword [esp + 0x14]
mov dword [0x4843b4], 1
lea edx, [eax + eax]
not edx
add edx, eax
cmp ecx, 4
jb 0x403cac
nop word [eax + eax]
mov eax, edx
shr eax, 8
xor dl, byte [edi]
movzx edx, dl
xor eax, dword [edx*4 + 0x4639f0]
mov ebx, eax
shr ebx, 8
xor al, byte [edi + 1]
movzx eax, al
xor ebx, dword [eax*4 + 0x4639f0]
mov eax, ebx
shr eax, 8
xor bl, byte [edi + 2]
movzx edx, bl
mov ebx, dword [edx*4 + 0x4639f0]
mov edx, ebx
and edx, eax
add edx, edx
sub ebx, edx
add ebx, eax
mov edx, ebx
xor bl, byte [edi + 3]
shr edx, 8
movzx eax, bl
xor edx, dword [eax*4 + 0x4639f0]
add edi, 4
add ecx, 0xfffffffc
cmp ecx, 3
ja 0x403c50
test ecx, ecx
je 0x403cbe
test cl, 1
jne 0x403cc2
mov esi, ecx
cmp ecx, 1
jne 0x403cde
jmp 0x403d1c
mov eax, edx
jmp 0x403d1c
mov eax, edx
xor dl, byte [edi]
shr eax, 8
movzx edx, dl
xor eax, dword [edx*4 + 0x4639f0]
inc edi
lea esi, [ecx - 1]
mov edx, eax
cmp ecx, 1
je 0x403d1c
xor ecx, ecx
mov eax, edx
nop word cs:[eax + eax]
mov edx, eax
shr edx, 8
xor al, byte [edi + ecx]
movzx eax, al
xor edx, dword [eax*4 + 0x4639f0]
mov eax, edx
shr eax, 8
xor dl, byte [edi + ecx + 1]
movzx edx, dl
xor eax, dword [edx*4 + 0x4639f0]
add ecx, 2
cmp esi, ecx
jne 0x403cf0
not eax
pop esi
pop edi
pop ebx
ret