Function at 0x402fc0
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 [0x47fa1c]
test eax, eax
jne 0x403c84
movq xmm0, qword [0x45f5f0]
movdqa xmm1, xmm0
paddd xmm1, xmm0
pand xmm1, xmmword [0x45b900]
psubd xmm0, xmm1
paddd xmm0, xmmword [0x45b910]
movq xmm1, qword [0x45f5f8]
pxor xmm1, xmmword [0x45b920]
punpcklqdq xmm0, xmm1
movdqa xmmword [0x45f9f0], xmm0
mov eax, 0x8ddc80c8
xor eax, dword [0x45f600]
mov dword [0x45fa00], eax
mov eax, dword [0x45f604]
mov esi, eax
not esi
or eax, 0x53023698
or esi, 0xacfdc967
and esi, eax
not esi
mov dword [0x45fa04], esi
mov eax, dword [0x45f608]
lea esi, [eax + eax]
and esi, 0x8ee355ea
neg esi
add eax, esi
add eax, 0xc771aaf5
mov dword [0x45fa08], eax
movups xmm0, xmmword [0x45f60c]
xorps xmm0, xmmword [0x45b930]
movups xmmword [0x45fa0c], xmm0
mov eax, 0x147c4c3c
xor eax, dword [0x45f61c]
mov dword [0x45fa1c], eax
mov eax, dword [0x45f620]
mov esi, eax
not esi
or eax, 0xf846679e
or esi, 0x7b99861
and esi, eax
not esi
mov dword [0x45fa20], esi
movups xmm0, xmmword [0x45f624]
xorps xmm0, xmmword [0x45b940]
movups xmmword [0x45fa24], xmm0
movsd xmm0, qword [0x45f634]
xorps xmm0, xmmword [0x45b950]
movlps qword [0x45fa34], xmm0
mov eax, 0x22d5c8b5
xor eax, dword [0x45f63c]
mov dword [0x45fa3c], eax
mov eax, dword [0x45f640]
lea esi, [eax + eax]
and esi, 0x2c5ae634
neg esi
add eax, esi
add eax, 0x962d731a
mov dword [0x45fa40], eax
mov eax, 0xfcb21078
xor eax, dword [0x45f644]
mov dword [0x45fa44], eax
mov eax, dword [0x45f648]
lea esi, [eax + eax]
and esi, 0xc182da26
neg esi
add eax, esi
add eax, 0xe0c16d13
mov dword [0x45fa48], eax
movups xmm0, xmmword [0x45f64c]
xorps xmm0, xmmword [0x45b960]
movups xmmword [0x45fa4c], xmm0
mov eax, 0xe92d54ba
xor eax, dword [0x45f65c]
mov dword [0x45fa5c], eax
mov eax, dword [0x45f660]
lea esi, [eax + eax]
and esi, 0x2ba5752
neg esi
add eax, esi
add eax, 0x815d2ba9
mov dword [0x45fa60], eax
movups xmm0, xmmword [0x45f664]
xorps xmm0, xmmword [0x45b970]
movups xmmword [0x45fa64], xmm0
movups xmm0, xmmword [0x45f674]
xorps xmm0, xmmword [0x45b980]
movups xmmword [0x45fa74], xmm0
movsd xmm0, qword [0x45f684]
xorps xmm0, xmmword [0x45b990]
movlps qword [0x45fa84], xmm0
mov eax, 0xb464bd22
xor eax, dword [0x45f68c]
mov dword [0x45fa8c], eax
mov eax, dword [0x45f690]
mov esi, eax
not esi
or esi, 0x6a3d5240
or eax, 0x95c2adbf
and eax, esi
movsd xmm0, qword [0x45f694]
xorps xmm0, xmmword [0x45b9a0]
mov dword [0x45fa90], eax
movlps qword [0x45fa94], xmm0
mov eax, dword [0x45f69c]
mov esi, eax
not esi
or eax, 0xd88b1181
or esi, 0x2774ee7e
and esi, eax
not esi
mov dword [0x45fa9c], esi
mov eax, dword [0x45f6a0]
lea esi, [eax + eax]
and esi, 0x952f0f7a
neg esi
add eax, esi
add eax, 0xca9787bd
mov dword [0x45faa0], eax
movsd xmm0, qword [0x45f6a4]
xorps xmm0, xmmword [str._OMd]
movlps qword [0x45faa4], xmm0
mov eax, dword [0x45f6ac]
mov esi, eax
not esi
or eax, 0x28231a86
or esi, 0xd7dce579
and esi, eax
not esi
mov dword [0x45faac], esi
movsd xmm0, qword [0x45f6b0]
xorps xmm0, xmmword [0x45b9c0]
movlps qword [0x45fab0], xmm0
mov eax, dword [0x45f6b8]
lea esi, [eax + eax]
and esi, 0xd68d92cc
neg esi
add eax, esi
add eax, 0x6b46c966
movups xmm0, xmmword [0x45f6bc]
xorps xmm0, xmmword [0x45b9d0]
mov dword [0x45fab8], eax
movups xmm1, xmmword [0x45f6cc]
xorps xmm1, xmmword [0x45b9e0]
movups xmmword [0x45fabc], xmm0
movups xmmword [0x45facc], xmm1
mov eax, dword [0x45f6dc]
lea esi, [eax + eax]
and esi, 0xdbe66494
neg esi
add eax, esi
add eax, 0xedf3324a
mov dword [0x45fadc], eax
movaps xmm0, xmmword [0x45f6e0]
xorps xmm0, xmmword [0x45b9f0]
movaps xmmword [0x45fae0], xmm0
movaps xmm0, xmmword [0x45f6f0]
xorps xmm0, xmmword [0x45ba00]
movaps xmmword [0x45faf0], xmm0
mov eax, 0x4e5ba3cb
xor eax, dword [0x45f700]
mov dword [0x45fb00], eax
mov eax, dword [0x45f704]
lea esi, [eax + eax]
and esi, 0x15a4a574
neg esi
add eax, esi
add eax, 0x8ad252ba
movups xmm0, xmmword [0x45f708]
xorps xmm0, xmmword [0x45ba10]
mov dword [0x45fb04], eax
movsd xmm1, qword [0x45f718]
xorps xmm1, xmmword [0x45ba20]
movups xmmword [0x45fb08], xmm0
movlps qword [0x45fb18], xmm1
mov eax, dword [0x45f720]
lea esi, [eax + eax]
and esi, 0x4f6ba336
neg esi
add eax, esi
add eax, 0xa7b5d19b
mov dword [0x45fb20], eax
movsd xmm0, qword [0x45f724]
xorps xmm0, xmmword [0x45ba30]
movlps qword [0x45fb24], xmm0
mov eax, dword [0x45f72c]
lea esi, [eax + eax]
and esi, 0x19e007fa
neg esi
add eax, esi
add eax, 0xcf003fd
mov esi, 0xc9cd2e61
xor esi, dword [0x45f730]
mov dword [0x45fb2c], eax
mov dword [0x45fb30], esi
mov eax, dword [0x45f734]
lea esi, [eax + eax]
and esi, 0x8d969fb4
neg esi
add eax, esi
add eax, 0xc6cb4fda
mov dword [0x45fb34], eax
mov eax, 0x41d68837
xor eax, dword [0x45f738]
mov dword [0x45fb38], eax
mov eax, dword [0x45f73c]
lea esi, [eax + eax]
and esi, 0xe98f028a
neg esi
add eax, esi
add eax, 0x74c78145
movaps xmm0, xmmword [0x45f740]
xorps xmm0, xmmword [0x45ba40]
mov dword [0x45fb3c], eax
movaps xmm1, xmmword [0x45f750]
xorps xmm1, xmmword [0x45ba50]
movaps xmmword [str.e57_t], xmm0
movsd xmm0, qword [0x45f760]
xorps xmm0, xmmword [0x45ba60]
movaps xmmword [0x45fb50], xmm1
mov eax, 0x1d68e10
xor eax, dword [0x45f768]
movlps qword [0x45fb60], xmm0
mov dword [0x45fb68], eax
movq xmm0, qword [0x45f76c]
movdqa xmm1, xmm0
paddd xmm1, xmm0
pand xmm1, xmmword [0x45ba70]
psubd xmm0, xmm1
paddd xmm0, xmmword [0x45ba80]
movq qword [0x45fb6c], xmm0
movsd xmm0, qword [0x45f774]
xorps xmm0, xmmword [0x45ba90]
movlps qword [0x45fb74], xmm0
mov eax, dword [0x45f77c]
lea esi, [eax + eax]
and esi, 0xb46bafb4
neg esi
add eax, esi
add eax, 0xda35d7da
mov esi, 0x102691fd
xor esi, dword [0x45f780]
movq xmm0, qword [0x45f784]
movdqa xmm1, xmm0
paddd xmm1, xmm0
pand xmm1, xmmword [0x45baa0]
mov dword [0x45fb7c], eax
psubd xmm0, xmm1
paddd xmm0, xmmword [0x45bab0]
mov dword [0x45fb80], esi
mov eax, 0x8a468d7c
xor eax, dword [0x45f78c]
movq qword [0x45fb84], xmm0
mov dword [0x45fb8c], eax
mov eax, dword [0x45f790]
mov esi, eax
not esi
or esi, 0xc2d4c4a9
or eax, 0x3d2b3b56
and eax, esi
mov dword [0x45fb90], eax
mov eax, dword [0x45f794]
lea esi, [eax + eax]
and esi, 0xce171bfc
neg esi
add eax, esi
add eax, 0xe70b8dfe
mov dword [0x45fb94], eax
movups xmm0, xmmword [0x45f798]
xorps xmm0, xmmword [0x45bac0]
movups xmmword [0x45fb98], xmm0
mov eax, dword [0x45f7a8]
lea esi, [eax + eax]
and esi, 0x777fdf08
neg esi
add eax, esi
add eax, 0x3bbfef84
mov dword [0x45fba8], eax
movups xmm0, xmmword [0x45f7ac]
xorps xmm0, xmmword [0x45bad0]
movups xmmword [0x45fbac], xmm0
movsd xmm0, qword [0x45f7bc]
xorps xmm0, xmmword [0x45bae0]
movlps qword [0x45fbbc], xmm0
mov eax, dword [0x45f7c4]
lea esi, [eax + eax]
and esi, 0x16d2a4a4
neg esi
add eax, esi
add eax, 0x8b695252
mov dword [0x45fbc4], eax
mov eax, 0xbcda841c
xor eax, dword [0x45f7c8]
mov dword [0x45fbc8], eax
mov eax, dword [0x45f7cc]
lea esi, [eax + eax]
and esi, 0x7b1bedca
neg esi
add eax, esi
add eax, 0xbd8df6e5
mov dword [0x45fbcc], eax
movaps xmm0, xmmword [0x45f7d0]
xorps xmm0, xmmword [0x45baf0]
movaps xmmword [0x45fbd0], xmm0
movsd xmm0, qword [0x45f7e0]
xorps xmm0, xmmword [0x45bb00]
movlps qword [0x45fbe0], xmm0
mov eax, dword [0x45f7e8]
lea esi, [eax + eax]
and esi, 0x52cd48
neg esi
add eax, esi
add eax, 0x802966a4
mov dword [0x45fbe8], eax
mov eax, 0xcedebc7
xor eax, dword [0x45f7ec]
mov dword [0x45fbec], eax
mov eax, dword [0x45f7f0]
lea esi, [eax + eax]
and esi, 0xd3fb1b2a
neg esi
add eax, esi
add eax, 0xe9fd8d95
mov dword [0x45fbf0], eax
movups xmm0, xmmword [0x45f7f4]
xorps xmm0, xmmword [0x45bb10]
movups xmmword [0x45fbf4], xmm0
movsd xmm0, qword [0x45f804]
xorps xmm0, xmmword [0x45bb20]
movlps qword [0x45fc04], xmm0
mov eax, dword [0x45f80c]
lea esi, [eax + eax]
and esi, 0x28df3b3a
neg esi
add eax, esi
add eax, 0x946f9d9d
mov dword [0x45fc0c], eax
movaps xmm0, xmmword [0x45f810]
xorps xmm0, xmmword [0x45bb30]
movaps xmmword [0x45fc10], xmm0
movaps xmm0, xmmword [0x45f820]
xorps xmm0, xmmword [0x45bb40]
movaps xmmword [0x45fc20], xmm0
mov eax, dword [0x45f830]
lea esi, [eax + eax]
and esi, 0x9b29caec
neg esi
add eax, esi
add eax, 0x4d94e576
mov dword [0x45fc30], eax
movups xmm0, xmmword [0x45f834]
xorps xmm0, xmmword [0x45bb50]
movups xmmword [0x45fc34], xmm0
movups xmm0, xmmword [0x45f844]
xorps xmm0, xmmword [0x45bb60]
movups xmmword [0x45fc44], xmm0
mov eax, dword [0x45f854]
lea esi, [eax + eax]
and esi, 0x5c4348d4
neg esi
add eax, esi
add eax, 0xae21a46a
mov dword [0x45fc54], eax
movsd xmm0, qword [0x45f858]
xorps xmm0, xmmword [0x45bb70]
movlps qword [str._CA], xmm0
mov eax, 0x32d95d87
xor eax, dword [0x45f860]
mov dword [0x45fc60], eax
mov eax, dword [0x45f864]
lea esi, [eax + eax]
and esi, 0x82156292
neg esi
add eax, esi
add eax, 0x410ab149
mov dword [0x45fc64], eax
movsd xmm0, qword [0x45f868]
xorps xmm0, xmmword [0x45bb80]
movlps qword [0x45fc68], xmm0
mov eax, dword [0x45f870]
mov esi, eax
not esi
or esi, 0x480d7033
or eax, 0xb7f28fcc
and eax, esi
mov dword [0x45fc70], eax
mov eax, 0xcdf71748
xor eax, dword [0x45f874]
mov dword [0x45fc74], eax
mov eax, dword [0x45f878]
lea esi, [eax + eax]
and esi, 0xefd3b0ee
neg esi
add eax, esi
add eax, 0xf7e9d877
movsd xmm0, qword [0x45f87c]
xorps xmm0, xmmword [0x45bb90]
mov dword [0x45fc78], eax
movlps qword [0x45fc7c], xmm0
mov eax, dword [0x45f884]
lea esi, [eax + eax]
and esi, 0xb79a0dca
neg esi
add eax, esi
add eax, 0x5bcd06e5
mov dword [0x45fc84], eax
movsd xmm0, qword [0x45f888]
xorps xmm0, xmmword [0x45bba0]
movlps qword [0x45fc88], xmm0
mov eax, 0x16708bf6
xor eax, dword [0x45f890]
mov dword [0x45fc90], eax
mov eax, dword [0x45f894]
lea esi, [eax + eax]
and esi, 0xd8468152
neg esi
add eax, esi
add eax, 0xec2340a9
movups xmm0, xmmword [0x45f898]
xorps xmm0, xmmword [0x45bbb0]
mov dword [0x45fc94], eax
mov eax, 0x9fb9d1e
xor eax, dword [0x45f8a8]
movups xmmword [0x45fc98], xmm0
mov dword [0x45fca8], eax
mov eax, dword [0x45f8ac]
mov esi, eax
not esi
or eax, 0xd280f41a
or esi, 0x2d7f0be5
and esi, eax
not esi
movsd xmm0, qword [0x45f8b0]
xorps xmm0, xmmword [0x45bbc0]
mov dword [str.V4ny], esi
movlps qword [0x45fcb0], xmm0
movq xmm0, qword [0x45f8b8]
movdqa xmm1, xmm0
paddd xmm1, xmm0
pand xmm1, xmmword [0x45bbd0]
psubd xmm0, xmm1
paddd xmm0, xmmword [0x45bbe0]
movq qword [0x45fcb8], xmm0
mov eax, 0x54ed104d
xor eax, dword [0x45f8c0]
mov dword [0x45fcc0], eax
mov eax, dword [0x45f8c4]
lea esi, [eax + eax]
and esi, 0x3c91cc54
neg esi
add eax, esi
add eax, 0x1e48e62a
mov dword [0x45fcc4], eax
movups xmm0, xmmword [0x45f8c8]
xorps xmm0, xmmword [0x45bbf0]
mov eax, 0x7dc4b3b4
xor eax, dword [0x45f8d8]
movq xmm1, qword [0x45f8dc]
movdqa xmm2, xmm1
paddd xmm2, xmm1
pand xmm2, xmmword [0x45bc00]
movups xmmword [0x45fcc8], xmm0
psubd xmm1, xmm2
paddd xmm1, xmmword [0x45bc10]
mov dword [0x45fcd8], eax
mov eax, 0x8f97d260
xor eax, dword [0x45f8e4]
movq qword [0x45fcdc], xmm1
mov dword [0x45fce4], eax
mov eax, dword [0x45f8e8]
lea esi, [eax + eax]
and esi, 0xe69b18c2
neg esi
add eax, esi
add eax, 0x734d8c61
mov dword [0x45fce8], eax
movsd xmm0, qword [0x45f8ec]
xorps xmm0, xmmword [0x45bc20]
movlps qword [0x45fcec], xmm0
mov eax, dword [0x45f8f4]
lea esi, [eax + eax]
and esi, 0xfd47a4c2
neg esi
add eax, esi
add eax, 0xfea3d261
mov esi, 0x5c1b66eb
xor esi, dword [0x45f8f8]
mov dword [0x45fcf4], eax
mov dword [0x45fcf8], esi
mov eax, dword [0x45f8fc]
lea esi, [eax + eax]
and esi, 0xc3f63e0c
neg esi
add eax, esi
add eax, 0x61fb1f06
mov dword [0x45fcfc], eax
movaps xmm0, xmmword [0x45f900]
xorps xmm0, xmmword [0x45bc30]
movaps xmmword [0x45fd00], xmm0
mov eax, 0x6555de92
xor eax, dword [0x45f910]
mov dword [0x45fd10], eax
mov eax, dword [0x45f914]
mov esi, eax
not esi
or eax, 0xa930263f
or esi, 0x56cfd9c0
and esi, eax
not esi
mov dword [0x45fd14], esi
mov eax, dword [0x45f918]
mov esi, eax
not esi
or esi, 0x63ecd63f
or eax, 0x9c1329c0
and eax, esi
mov dword [0x45fd18], eax
movups xmm0, xmmword [0x45f91c]
xorps xmm0, xmmword [0x45bc40]
movups xmmword [0x45fd1c], xmm0
mov eax, 0x2bfc47c3
xor eax, dword [0x45f92c]
mov dword [0x45fd2c], eax
mov eax, dword [0x45f930]
lea esi, [eax + eax]
and esi, 0xdec318b6
neg esi
add eax, esi
add eax, 0x6f618c5b
mov dword [0x45fd30], eax
movsd xmm0, qword [0x45f934]
xorps xmm0, xmmword [0x45bc50]
movlps qword [0x45fd34], xmm0
mov eax, dword [0x45f93c]
lea esi, [eax + eax]
and esi, 0x1e67251a
neg esi
add eax, esi
add eax, 0xf33928d
mov dword [0x45fd3c], eax
mov eax, 0xbae9df34
xor eax, dword [0x45f940]
mov dword [0x45fd40], eax
mov eax, dword [0x45f944]
lea esi, [eax + eax]
and esi, 0x45e3897a
neg esi
add eax, esi
add eax, 0xa2f1c4bd
mov dword [0x45fd44], eax
movups xmm0, xmmword [0x45f948]
xorps xmm0, xmmword [0x45bc60]
movups xmmword [0x45fd48], xmm0
movups xmm0, xmmword [0x45f958]
xorps xmm0, xmmword [0x45bc70]
movups xmmword [0x45fd58], xmm0
mov eax, 0x69853fd
xor eax, dword [0x45f968]
mov dword [0x45fd68], eax
mov eax, dword [0x45f96c]
lea esi, [eax + eax]
and esi, 0x576f5606
neg esi
add eax, esi
add eax, 0xabb7ab03
mov dword [0x45fd6c], eax
movaps xmm0, xmmword [0x45f970]
xorps xmm0, xmmword [0x45bc80]
movaps xmmword [0x45fd70], xmm0
movsd xmm0, qword [0x45f980]
xorps xmm0, xmmword [0x45bc90]
movlps qword [0x45fd80], xmm0
mov eax, 0xc1e57439
xor eax, dword [0x45f988]
mov dword [0x45fd88], eax
mov eax, dword [0x45f98c]
lea esi, [eax + eax]
and esi, 0x8bd0a60a
neg esi
add eax, esi
add eax, 0xc5e85305
mov dword [0x45fd8c], eax
mov eax, 0x848544ed
xor eax, dword [0x45f990]
mov dword [0x45fd90], eax
mov eax, dword [0x45f994]
lea esi, [eax + eax]
and esi, 0x114412a6
neg esi
add eax, esi
add eax, 0x88a20953
mov dword [0x45fd94], eax
movups xmm0, xmmword [0x45f998]
xorps xmm0, xmmword [0x45bca0]
movups xmmword [0x45fd98], xmm0
mov eax, dword [0x45f9a8]
mov esi, eax
not esi
or esi, 0x65196d48
or eax, 0x9ae692b7
and eax, esi
movsd xmm0, qword [0x45f9ac]
xorps xmm0, xmmword [0x45bcb0]
mov dword [0x45fda8], eax
mov eax, 0xaa2376
xor eax, dword [0x45f9b4]
movlps qword [0x45fdac], xmm0
mov dword [0x45fdb4], eax
mov eax, dword [0x45f9b8]
lea esi, [eax + eax]
and esi, 0x7010a1ca
neg esi
add eax, esi
add eax, 0xb80850e5
mov dword [0x45fdb8], eax
movups xmm0, xmmword [0x45f9bc]
xorps xmm0, xmmword [0x45bcc0]
movups xmmword [0x45fdbc], xmm0
mov eax, 0x29cd8181
xor eax, dword [0x45f9cc]
mov dword [0x45fdcc], eax
mov eax, dword [0x45f9d0]
lea esi, [eax + eax]
and esi, 0x708a5c12
neg esi
add eax, esi
add eax, 0xb8452e09
movups xmm0, xmmword [0x45f9d4]
xorps xmm0, xmmword [0x45bcd0]
mov dword [0x45fdd0], eax
movups xmmword [0x45fdd4], xmm0
mov eax, dword [0x45f9e4]
lea esi, [eax + eax]
and esi, 0xb2c17018
neg esi
add eax, esi
add eax, 0xd960b80c
mov dword [0x45fde4], eax
movsd xmm0, qword [0x45f9e8]
xorps xmm0, xmmword [0x45bce0]
movlps qword [0x45fde8], xmm0
mov esi, dword [esp + 0x14]
mov dword [0x47fa1c], 1
not edx
cmp ecx, 4
jb 0x403d14
nop dword [eax]
mov eax, edx
shr eax, 8
movzx edi, byte [esi]
xor edi, edx
xor edi, 0x3fffff00
or edx, 0xff
and edx, edi
xor eax, dword [edx*4 + 0x45f9f0]
mov edx, eax
shr edx, 8
movzx edi, byte [esi + 1]
xor edi, eax
not eax
or eax, 0xff
add eax, edi
xor edx, dword [eax*4 + 0x45f9f4]
mov eax, edx
xor dl, byte [esi + 2]
shr eax, 8
movzx edx, dl
xor eax, dword [edx*4 + 0x45f9f0]
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 + 0x45f9f0]
add esi, 4
add ecx, 0xfffffffc
cmp ecx, 3
ja 0x403ca0
test ecx, ecx
je 0x403d29
test cl, 1
jne 0x403d2d
mov edi, ecx
cmp ecx, 1
jne 0x403d57
jmp 0x403da7
mov eax, edx
jmp 0x403da7
mov eax, edx
shr eax, 8
movzx edi, byte [esi]
xor edi, edx
xor edi, 0x3fffff00
or edx, 0xff
and edx, edi
xor eax, dword [edx*4 + 0x45f9f0]
inc esi
lea edi, [ecx - 1]
mov edx, eax
cmp ecx, 1
je 0x403da7
xor ecx, ecx
mov eax, edx
nop dword [eax + eax]
mov edx, eax
shr edx, 8
movzx ebx, byte [esi + ecx]
xor ebx, eax
xor ebx, 0x3fffff00
or eax, 0xff
and eax, ebx
xor edx, dword [eax*4 + 0x45f9f0]
mov eax, edx
shr eax, 8
movzx ebx, byte [esi + ecx + 1]
xor ebx, edx
xor ebx, 0x3fffff00
or edx, 0xff
and edx, ebx
xor eax, dword [edx*4 + 0x45f9f0]
add ecx, 2
cmp edi, ecx
jne 0x403d60
not eax
pop esi
pop edi
pop ebx
ret