Function at 0x4033b0
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 [0x472b24]
test eax, eax
jne 0x403f11
mov eax, dword [0x4585f0]
lea esi, [eax + eax]
and esi, 0x7b3f54fa
neg esi
add eax, esi
add eax, 0x3d9faa7d
mov dword [0x4589f0], eax
movups xmm0, xmmword [0x4585f4]
xorps xmm0, xmmword [0x454910]
movups xmmword [0x4589f4], xmm0
movsd xmm0, qword [0x458604]
xorps xmm0, xmmword [0x454920]
movlps qword [0x458a04], xmm0
mov eax, dword [0x45860c]
mov esi, eax
not esi
or eax, 0x902a4b48
or esi, 0x6fd5b4b7
and esi, eax
not esi
mov dword [0x458a0c], esi
movsd xmm0, qword [0x458610]
xorps xmm0, xmmword [0x454930]
movlps qword [0x458a10], xmm0
mov eax, dword [0x458618]
lea esi, [eax + eax]
and esi, 0x3d543612
neg esi
add eax, esi
add eax, 0x1eaa1b09
mov dword [0x458a18], eax
movsd xmm0, qword [case.0x42d100.0]
xorps xmm0, xmmword [0x454940]
movlps qword [0x458a1c], xmm0
mov eax, dword [0x458624]
mov esi, eax
not esi
or eax, 0x32312701
or esi, 0xcdced8fe
and esi, eax
not esi
mov dword [0x458a24], esi
movups xmm0, xmmword [0x458628]
xorps xmm0, xmmword [0x454950]
movups xmmword [0x458a28], xmm0
movups xmm0, xmmword [0x458638]
xorps xmm0, xmmword [0x454960]
movups xmmword [0x458a38], xmm0
movups xmm0, xmmword [0x458648]
xorps xmm0, xmmword [0x454970]
movups xmmword [0x458a48], xmm0
movq xmm0, qword [0x458658]
movdqa xmm1, xmm0
paddd xmm1, xmm0
pand xmm1, xmmword [0x454980]
psubd xmm0, xmm1
paddd xmm0, xmmword [0x454990]
movq xmm1, qword [0x458660]
pxor xmm1, xmmword [0x4549a0]
punpcklqdq xmm0, xmm1
movdqu xmmword [0x458a58], xmm0
mov eax, 0x48fdd26e
xor eax, dword [0x458668]
mov dword [0x458a68], eax
mov eax, dword [0x45866c]
mov esi, eax
not esi
or eax, 0x9541de19
or esi, 0x6abe21e6
and esi, eax
not esi
mov dword [0x458a6c], esi
movaps xmm0, xmmword [0x458670]
xorps xmm0, xmmword [str._6._b]
movaps xmmword [0x458a70], xmm0
movaps xmm0, xmmword [0x458680]
xorps xmm0, xmmword [0x4549c0]
movaps xmmword [0x458a80], xmm0
mov eax, dword [0x458690]
lea esi, [eax + eax]
and esi, 0xaf2e2e06
neg esi
add eax, esi
add eax, 0xd7971703
mov esi, 0x603957e0
xor esi, dword [0x458694]
mov dword [0x458a90], eax
mov dword [0x458a94], esi
mov eax, dword [0x458698]
lea esi, [eax + eax]
and esi, 0x3de0f0aa
neg esi
add eax, esi
add eax, 0x9ef07855
mov dword [0x458a98], eax
movups xmm0, xmmword [0x45869c]
xorps xmm0, xmmword [0x4549d0]
movups xmmword [0x458a9c], xmm0
movsd xmm0, qword [0x4586ac]
xorps xmm0, xmmword [0x4549e0]
movlps qword [0x458aac], xmm0
mov eax, 0x87734414
xor eax, dword [0x4586b4]
mov dword [0x458ab4], eax
mov eax, dword [str.drVn]
lea esi, [eax + eax]
and esi, 0x4d0247c8
neg esi
add eax, esi
add eax, 0xa68123e4
mov esi, 0x12f8a400
xor esi, dword [0x4586bc]
mov dword [0x458ab8], eax
mov dword [0x458abc], esi
mov eax, dword [0x4586c0]
lea esi, [eax + eax]
and esi, 0x484be28e
neg esi
add eax, esi
add eax, 0xa425f147
mov dword [0x458ac0], eax
movups xmm0, xmmword [0x4586c4]
xorps xmm0, xmmword [0x4549f0]
movups xmmword [0x458ac4], xmm0
mov eax, dword [0x4586d4]
lea esi, [eax + eax]
and esi, 0x510528de
neg esi
add eax, esi
add eax, 0xa882946f
movsd xmm0, qword [0x4586d8]
xorps xmm0, xmmword [0x454a00]
mov dword [0x458ad4], eax
mov eax, 0x86fd8277
xor eax, dword [0x4586e0]
movlps qword [0x458ad8], xmm0
mov dword [0x458ae0], eax
movq xmm0, qword [0x4586e4]
movdqa xmm1, xmm0
paddd xmm1, xmm0
pand xmm1, xmmword [0x454a10]
psubd xmm0, xmm1
paddd xmm0, xmmword [0x454a20]
movq qword [0x458ae4], xmm0
movups xmm0, xmmword [0x4586ec]
xorps xmm0, xmmword [0x454a30]
movups xmmword [0x458aec], xmm0
mov eax, dword [0x4586fc]
lea esi, [eax + eax]
and esi, 0x1c0be936
neg esi
add eax, esi
add eax, 0xe05f49b
mov dword [0x458afc], eax
mov eax, dword [0x458700]
mov esi, eax
not esi
or eax, 0x7de01011
or esi, 0x821fefee
and esi, eax
not esi
mov dword [0x458b00], esi
mov eax, 0x8669c6b2
xor eax, dword [0x458704]
mov dword [0x458b04], eax
mov eax, dword [0x458708]
mov esi, eax
not esi
or eax, 0xe76eb60e
or esi, 0x189149f1
and esi, eax
not esi
mov dword [0x458b08], esi
mov eax, 0x19ab1b86
xor eax, dword [0x45870c]
mov dword [0x458b0c], eax
mov eax, dword [0x458710]
lea esi, [eax + eax]
and esi, 0xbaf836ec
neg esi
add eax, esi
add eax, 0xdd7c1b76
mov dword [0x458b10], eax
movups xmm0, xmmword [0x458714]
xorps xmm0, xmmword [0x454a40]
movups xmmword [0x458b14], xmm0
movups xmm0, xmmword [0x458724]
xorps xmm0, xmmword [0x454a50]
movups xmmword [0x458b24], xmm0
movups xmm0, xmmword [0x458734]
xorps xmm0, xmmword [0x454a60]
movups xmmword [0x458b34], xmm0
movsd xmm0, qword [0x458744]
xorps xmm0, xmmword [0x454a70]
movlps qword [0x458b44], xmm0
mov eax, 0x31d29a38
xor eax, dword [0x45874c]
mov dword [0x458b4c], eax
mov eax, dword [0x458750]
lea esi, [eax + eax]
and esi, 0xdcdca41a
neg esi
add eax, esi
add eax, 0x6e6e520d
mov dword [0x458b50], eax
movups xmm0, xmmword [0x458754]
xorps xmm0, xmmword [0x454a80]
movups xmmword [0x458b54], xmm0
movups xmm0, xmmword [0x458764]
xorps xmm0, xmmword [0x454a90]
movups xmmword [0x458b64], xmm0
mov eax, 0x846bad1
xor eax, dword [0x458774]
mov dword [0x458b74], eax
mov eax, dword [0x458778]
mov esi, eax
not esi
or esi, 0xd4cdab15
or eax, 0x2b3254ea
and eax, esi
mov dword [0x458b78], eax
movups xmm0, xmmword [0x45877c]
xorps xmm0, xmmword [0x454aa0]
movups xmmword [0x458b7c], xmm0
movsd xmm0, qword [0x45878c]
xorps xmm0, xmmword [0x454ab0]
movlps qword [0x458b8c], xmm0
mov eax, dword [0x458794]
lea esi, [eax + eax]
and esi, 0xde715266
neg esi
add eax, esi
add eax, 0xef38a933
movups xmm0, xmmword [0x458798]
xorps xmm0, xmmword [0x454ac0]
mov dword [0x458b94], eax
movups xmmword [0x458b98], xmm0
mov eax, dword [0x4587a8]
lea esi, [eax + eax]
and esi, 0xa8c2a314
neg esi
add eax, esi
add eax, 0xd461518a
mov dword [0x458ba8], eax
movups xmm0, xmmword [0x4587ac]
xorps xmm0, xmmword [0x454ad0]
movups xmmword [0x458bac], xmm0
mov eax, 0x767ffb06
xor eax, dword [0x4587bc]
mov dword [0x458bbc], eax
mov eax, dword [0x4587c0]
lea esi, [eax + eax]
and esi, 0x71ea69c8
neg esi
add eax, esi
add eax, 0xb8f534e4
movups xmm0, xmmword [0x4587c4]
xorps xmm0, xmmword [0x454ae0]
mov dword [0x458bc0], eax
movups xmm1, xmmword [0x4587d4]
xorps xmm1, xmmword [0x454af0]
movups xmmword [0x458bc4], xmm0
movups xmm0, xmmword [0x4587e4]
xorps xmm0, xmmword [0x454b00]
movups xmmword [0x458bd4], xmm1
movups xmmword [0x458be4], xmm0
mov eax, dword [0x4587f4]
lea esi, [eax + eax]
and esi, 0x86d05d44
neg esi
add eax, esi
add eax, 0xc3682ea2
mov dword [0x458bf4], eax
mov eax, dword [0x4587f8]
mov esi, eax
not esi
or esi, 0x646a2159
or eax, 0x9b95dea6
and eax, esi
mov dword [0x458bf8], eax
movups xmm0, xmmword [0x4587fc]
xorps xmm0, xmmword [0x454b10]
movups xmmword [0x458bfc], xmm0
movups xmm0, xmmword [0x45880c]
xorps xmm0, xmmword [0x454b20]
movups xmmword [0x458c0c], xmm0
movups xmm0, xmmword [0x45881c]
xorps xmm0, xmmword [0x454b30]
movups xmmword [0x458c1c], xmm0
mov eax, dword [0x45882c]
lea esi, [eax + eax]
and esi, 0x227fb4b8
neg esi
add eax, esi
add eax, 0x913fda5c
mov dword [0x458c2c], eax
movaps xmm0, xmmword [0x458830]
xorps xmm0, xmmword [0x454b40]
movaps xmmword [0x458c30], xmm0
movaps xmm0, xmmword [0x458840]
xorps xmm0, xmmword [0x454b50]
movaps xmmword [0x458c40], xmm0
mov eax, 0x57912a9
xor eax, dword [0x458850]
mov dword [0x458c50], eax
mov eax, dword [0x458854]
mov esi, eax
not esi
or eax, 0x61a230a5
or esi, 0x9e5dcf5a
and esi, eax
not esi
mov dword [0x458c54], esi
movsd xmm0, qword [0x458858]
xorps xmm0, xmmword [0x454b60]
movlps qword [0x458c58], xmm0
mov eax, 0x4d3f5db8
xor eax, dword [0x458860]
mov dword [0x458c60], eax
mov eax, dword [0x458864]
lea esi, [eax + eax]
and esi, 0x124b7ab0
neg esi
add eax, esi
add eax, 0x8925bd58
mov dword [0x458c64], eax
movups xmm0, xmmword [0x458868]
xorps xmm0, xmmword [0x454b70]
movups xmmword [0x458c68], xmm0
mov eax, dword [0x458878]
lea esi, [eax + eax]
and esi, 0x3182ef6c
neg esi
add eax, esi
add eax, 0x18c177b6
mov dword [0x458c78], eax
movsd xmm0, qword [0x45887c]
xorps xmm0, xmmword [0x454b80]
movlps qword [0x458c7c], xmm0
mov eax, 0xc0ea118b
xor eax, dword [0x458884]
mov dword [0x458c84], eax
mov eax, dword [0x458888]
mov esi, eax
not esi
or esi, 0x980e390d
or eax, 0x67f1c6f2
and eax, esi
mov dword [0x458c88], eax
movups xmm0, xmmword [0x45888c]
xorps xmm0, xmmword [0x454b90]
movups xmmword [0x458c8c], xmm0
mov eax, dword [str.D2B_]
lea esi, [eax + eax]
and esi, 0xfc8c9048
neg esi
add eax, esi
add eax, 0x7e464824
movsd xmm0, qword [0x4588a0]
xorps xmm0, xmmword [0x454ba0]
mov dword [0x458c9c], eax
movlps qword [0x458ca0], xmm0
mov eax, dword [0x4588a8]
lea esi, [eax + eax]
and esi, 0xe496025c
neg esi
add eax, esi
add eax, 0x724b012e
mov dword [str.ZDl:], eax
movsd xmm0, qword [0x4588ac]
xorps xmm0, xmmword [0x454bb0]
movlps qword [0x458cac], xmm0
mov eax, dword [0x4588b4]
mov esi, eax
not esi
or eax, 0xd46dbb
or esi, 0xff2b9244
and esi, eax
not esi
mov dword [0x458cb4], esi
movups xmm0, xmmword [0x4588b8]
xorps xmm0, xmmword [0x454bc0]
movups xmmword [0x458cb8], xmm0
mov eax, dword [0x4588c8]
lea esi, [eax + eax]
and esi, 0x6a840936
neg esi
add eax, esi
add eax, 0x3542049b
movups xmm0, xmmword [0x4588cc]
xorps xmm0, xmmword [0x454bd0]
mov dword [0x458cc8], eax
movups xmmword [0x458ccc], xmm0
mov eax, dword [0x4588dc]
lea esi, [eax + eax]
and esi, 0x545ae31a
neg esi
add eax, esi
add eax, 0x2a2d718d
mov dword [0x458cdc], eax
mov eax, 0xbe57db2c
xor eax, dword [0x4588e0]
mov dword [0x458ce0], eax
mov eax, dword [0x4588e4]
lea esi, [eax + eax]
and esi, 0xe48dab8a
neg esi
add eax, esi
add eax, 0xf246d5c5
mov esi, 0xd17fa9c4
xor esi, dword [0x4588e8]
mov dword [0x458ce4], eax
mov dword [0x458ce8], esi
movq xmm0, qword [0x4588ec]
movdqa xmm1, xmm0
paddd xmm1, xmm0
pand xmm1, xmmword [0x454be0]
psubd xmm0, xmm1
paddd xmm0, xmmword [0x454bf0]
movq qword [0x458cec], xmm0
movsd xmm0, qword [0x4588f4]
xorps xmm0, xmmword [0x454c00]
movlps qword [0x458cf4], xmm0
mov eax, dword [0x4588fc]
mov esi, eax
not esi
or esi, 0xed545f91
or eax, 0x12aba06e
and eax, esi
movsd xmm0, qword [0x458900]
xorps xmm0, xmmword [0x454c10]
mov dword [0x458cfc], eax
movlps qword [0x458d00], xmm0
mov eax, dword [0x458908]
mov esi, eax
not esi
or eax, 0x56d310c5
or esi, 0xa92cef3a
and esi, eax
not esi
movups xmm0, xmmword [0x45890c]
xorps xmm0, xmmword [0x454c20]
mov dword [0x458d08], esi
movsd xmm1, qword [0x45891c]
xorps xmm1, xmmword [0x454c30]
movups xmmword [0x458d0c], xmm0
mov eax, 0x3ea7169
xor eax, dword [0x458924]
movlps qword [0x458d1c], xmm1
mov dword [0x458d24], eax
mov eax, dword [0x458928]
lea esi, [eax + eax]
and esi, 0x83f4eb20
neg esi
add eax, esi
add eax, 0xc1fa7590
mov dword [0x458d28], eax
movups xmm0, xmmword [0x45892c]
xorps xmm0, xmmword [0x454c40]
movups xmmword [0x458d2c], xmm0
mov eax, 0xe434bfcb
xor eax, dword [0x45893c]
mov dword [0x458d3c], eax
mov eax, dword [0x458940]
lea esi, [eax + eax]
and esi, 0x5f9d18e8
neg esi
add eax, esi
add eax, 0x2fce8c74
movsd xmm0, qword [0x458944]
xorps xmm0, xmmword [0x454c50]
mov dword [0x458d40], eax
movlps qword [0x458d44], xmm0
mov eax, dword [0x45894c]
lea esi, [eax + eax]
and esi, 0x44de76ce
neg esi
add eax, esi
add eax, 0x226f3b67
mov dword [0x458d4c], eax
movaps xmm0, xmmword [0x458950]
xorps xmm0, xmmword [0x454c60]
movaps xmmword [0x458d50], xmm0
mov eax, 0xc1534c09
xor eax, dword [0x458960]
mov dword [0x458d60], eax
mov eax, dword [0x458964]
lea esi, [eax + eax]
and esi, 0x8db24712
neg esi
add eax, esi
add eax, 0xc6d92389
movups xmm0, xmmword [0x458968]
xorps xmm0, xmmword [0x454c70]
mov dword [0x458d64], eax
mov eax, 0xd3ea9554
xor eax, dword [0x458978]
movups xmmword [0x458d68], xmm0
mov dword [0x458d78], eax
mov eax, dword [0x45897c]
lea esi, [eax + eax]
and esi, 0x89c989b8
neg esi
add eax, esi
add eax, 0xc4e4c4dc
mov dword [0x458d7c], eax
mov eax, 0xfa8c527e
xor eax, dword [0x458980]
movq xmm0, qword [0x458984]
movdqa xmm1, xmm0
paddd xmm1, xmm0
pand xmm1, xmmword [0x454c80]
mov dword [0x458d80], eax
psubd xmm0, xmm1
paddd xmm0, xmmword [0x454c90]
movq qword [0x458d84], xmm0
movups xmm0, xmmword [0x45898c]
xorps xmm0, xmmword [0x454ca0]
movups xmmword [0x458d8c], xmm0
mov eax, dword [0x45899c]
mov esi, eax
not esi
or esi, 0xc99e7514
or eax, 0x36618aeb
and eax, esi
mov dword [0x458d9c], eax
movaps xmm0, xmmword [0x4589a0]
xorps xmm0, xmmword [0x454cb0]
movaps xmmword [0x458da0], xmm0
mov eax, dword [0x4589b0]
lea esi, [eax + eax]
and esi, 0xaa7245c0
neg esi
add eax, esi
add eax, 0xd53922e0
movups xmm0, xmmword [0x4589b4]
xorps xmm0, xmmword [0x454cc0]
mov dword [0x458db0], eax
movsd xmm1, qword [str.5]
xorps xmm1, xmmword [0x454cd0]
movups xmmword [0x458db4], xmm0
mov eax, 0x604fda68
xor eax, dword [0x4589cc]
movlps qword [0x458dc4], xmm1
mov dword [0x458dcc], eax
mov eax, dword [0x4589d0]
lea esi, [eax + eax]
and esi, 0xee2a1182
neg esi
add eax, esi
add eax, 0x771508c1
mov dword [0x458dd0], eax
movups xmm0, xmmword [0x4589d4]
xorps xmm0, xmmword [0x454ce0]
movups xmmword [0x458dd4], xmm0
movsd xmm0, qword [0x4589e4]
xorps xmm0, xmmword [str.:p4J]
movlps qword [0x458de4], xmm0
mov eax, 0xeeaba2d4
xor eax, dword [0x4589ec]
mov dword [0x458dec], eax
mov esi, dword [esp + 0x14]
mov dword [0x472b24], 1
not edx
cmp ecx, 4
jb 0x403f97
nop word cs:[eax + eax]
mov eax, edx
xor dl, byte [esi]
shr eax, 8
movzx edx, dl
xor eax, dword [edx*4 + 0x4589f0]
mov edx, eax
shr edx, 8
xor al, byte [esi + 1]
movzx eax, al
xor edx, dword [eax*4 + 0x4589f0]
mov eax, edx
shr eax, 8
xor dl, byte [esi + 2]
movzx edx, dl
xor eax, dword [edx*4 + 0x4589f0]
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
mov eax, dword [eax*4 + 0x4589f0]
mov edi, eax
and edi, edx
add edx, eax
add edi, edi
sub edx, edi
add esi, 4
add ecx, 0xfffffffc
cmp ecx, 3
ja 0x403f30
test ecx, ecx
je 0x403fa9
test cl, 1
jne 0x403fad
mov edi, ecx
cmp ecx, 1
jne 0x403fd3
jmp 0x404020
mov eax, edx
jmp 0x404020
mov eax, edx
shr eax, 8
movzx edi, byte [esi]
xor edi, edx
not edx
or edx, 0xff
add edi, edx
xor eax, dword [edi*4 + 0x4589f4]
inc esi
lea edi, [ecx - 1]
mov edx, eax
cmp ecx, 1
je 0x404020
xor ecx, ecx
mov eax, edx
nop word [eax + eax]
mov edx, eax
movzx ebx, byte [esi + ecx]
xor ebx, eax
shr eax, 8
not edx
or edx, 0xff
add ebx, edx
xor eax, dword [ebx*4 + 0x4589f4]
mov edx, eax
movzx ebx, byte [esi + ecx + 1]
xor ebx, eax
shr eax, 8
not edx
or edx, 0xff
add ebx, edx
xor eax, dword [ebx*4 + 0x4589f4]
add ecx, 2
cmp edi, ecx
jne 0x403fe0
not eax
pop esi
pop edi
pop ebx
ret