40bf55:	8d 40 00             	lea    0x0(%eax),%eax
40bf58:	53                   	push   %ebx
40bf59:	56                   	push   %esi
40bf5a:	8b f2                	mov    %edx,%esi
40bf5c:	8b d8                	mov    %eax,%ebx
40bf5e:	8b c3                	mov    %ebx,%eax
40bf60:	e8 f3 82 ff ff       	call   0x404258
40bf65:	3b f0                	cmp    %eax,%esi
40bf67:	7e 09                	jle    0x40bf72
40bf69:	8b c3                	mov    %ebx,%eax
40bf6b:	e8 e8 82 ff ff       	call   0x404258
40bf70:	8b f0                	mov    %eax,%esi
40bf72:	8b d6                	mov    %esi,%edx
40bf74:	8b c3                	mov    %ebx,%eax
40bf76:	e8 05 00 00 00       	call   0x40bf80
40bf7b:	5e                   	pop    %esi
40bf7c:	5b                   	pop    %ebx
40bf7d:	c3                   	ret
40bf7e:	8b c0                	mov    %eax,%eax
40bf80:	53                   	push   %ebx
40bf81:	56                   	push   %esi
40bf82:	57                   	push   %edi
40bf83:	8b f2                	mov    %edx,%esi
40bf85:	8b d8                	mov    %eax,%ebx
40bf87:	33 ff                	xor    %edi,%edi
40bf89:	85 f6                	test   %esi,%esi
40bf8b:	7e 45                	jle    0x40bfd2
40bf8d:	8b c3                	mov    %ebx,%eax
40bf8f:	e8 c4 82 ff ff       	call   0x404258
40bf94:	3b f0                	cmp    %eax,%esi
40bf96:	7f 3a                	jg     0x40bfd2
40bf98:	8b fe                	mov    %esi,%edi
40bf9a:	80 3d 4c e7 46 00 00 	cmpb   $0x0,0x46e74c
40bfa1:	74 2f                	je     0x40bfd2
40bfa3:	b8 01 00 00 00       	mov    $0x1,%eax
40bfa8:	33 ff                	xor    %edi,%edi
40bfaa:	3b f0                	cmp    %eax,%esi
40bfac:	7c 24                	jl     0x40bfd2
40bfae:	8a 54 03 ff          	mov    -0x1(%ebx,%eax,1),%dl
40bfb2:	81 e2 ff 00 00 00    	and    $0xff,%edx
40bfb8:	0f a3 15 0c 31 46 00 	bt     %edx,0x46310c
40bfbf:	73 0b                	jae    0x40bfcc
40bfc1:	8b d0                	mov    %eax,%edx
40bfc3:	8b c3                	mov    %ebx,%eax
40bfc5:	e8 c6 01 00 00       	call   0x40c190
40bfca:	eb 01                	jmp    0x40bfcd
40bfcc:	40                   	inc    %eax
40bfcd:	47                   	inc    %edi
40bfce:	3b f0                	cmp    %eax,%esi
40bfd0:	7d dc                	jge    0x40bfae
40bfd2:	8b c7                	mov    %edi,%eax
40bfd4:	5f                   	pop    %edi
40bfd5:	5e                   	pop    %esi
40bfd6:	5b                   	pop    %ebx
40bfd7:	c3                   	ret
40bfd8:	55                   	push   %ebp
40bfd9:	8b ec                	mov    %esp,%ebp
40bfdb:	83 c4 f4             	add    $0xfffffff4,%esp
40bfde:	53                   	push   %ebx
40bfdf:	56                   	push   %esi
40bfe0:	57                   	push   %edi
40bfe1:	89 4d f8             	mov    %ecx,-0x8(%ebp)
40bfe4:	89 55 fc             	mov    %edx,-0x4(%ebp)
40bfe7:	8b f8                	mov    %eax,%edi
40bfe9:	8b c7                	mov    %edi,%eax
40bfeb:	e8 68 82 ff ff       	call   0x404258
40bff0:	89 45 f4             	mov    %eax,-0xc(%ebp)
40bff3:	be 01 00 00 00       	mov    $0x1,%esi
40bff8:	bb 01 00 00 00       	mov    $0x1,%ebx
40bffd:	eb 21                	jmp    0x40c020
40bfff:	46                   	inc    %esi
40c000:	8a 44 1f ff          	mov    -0x1(%edi,%ebx,1),%al
40c004:	25 ff 00 00 00       	and    $0xff,%eax
40c009:	0f a3 05 0c 31 46 00 	bt     %eax,0x46310c
40c010:	73 0d                	jae    0x40c01f
40c012:	8b d3                	mov    %ebx,%edx
40c014:	8b c7                	mov    %edi,%eax
40c016:	e8 75 01 00 00       	call   0x40c190
40c01b:	8b d8                	mov    %eax,%ebx
40c01d:	eb 01                	jmp    0x40c020
40c01f:	43                   	inc    %ebx
40c020:	3b 5d f4             	cmp    -0xc(%ebp),%ebx
40c023:	7d 05                	jge    0x40c02a
40c025:	3b 75 fc             	cmp    -0x4(%ebp),%esi
40c028:	7c d5                	jl     0x40bfff
40c02a:	3b 75 fc             	cmp    -0x4(%ebp),%esi
40c02d:	75 23                	jne    0x40c052
40c02f:	3b 5d f4             	cmp    -0xc(%ebp),%ebx
40c032:	7d 1e                	jge    0x40c052
40c034:	8a 44 1f ff          	mov    -0x1(%edi,%ebx,1),%al
40c038:	25 ff 00 00 00       	and    $0xff,%eax
40c03d:	0f a3 05 0c 31 46 00 	bt     %eax,0x46310c
40c044:	73 0c                	jae    0x40c052
40c046:	8b d3                	mov    %ebx,%edx
40c048:	8b c7                	mov    %edi,%eax
40c04a:	e8 41 01 00 00       	call   0x40c190
40c04f:	48                   	dec    %eax
40c050:	8b d8                	mov    %eax,%ebx
40c052:	8b 45 f8             	mov    -0x8(%ebp),%eax
40c055:	89 30                	mov    %esi,(%eax)
40c057:	8b 45 08             	mov    0x8(%ebp),%eax
40c05a:	89 18                	mov    %ebx,(%eax)
40c05c:	5f                   	pop    %edi
40c05d:	5e                   	pop    %esi
40c05e:	5b                   	pop    %ebx
40c05f:	8b e5                	mov    %ebp,%esp
40c061:	5d                   	pop    %ebp
40c062:	c2 04 00             	ret    $0x4
40c065:	8d 40 00             	lea    0x0(%eax),%eax
40c068:	53                   	push   %ebx
40c069:	56                   	push   %esi
40c06a:	83 c4 f8             	add    $0xfffffff8,%esp
40c06d:	8b da                	mov    %edx,%ebx
40c06f:	8b f0                	mov    %eax,%esi
40c071:	33 c0                	xor    %eax,%eax
40c073:	89 04 24             	mov    %eax,(%esp)
40c076:	85 db                	test   %ebx,%ebx
40c078:	7e 4a                	jle    0x40c0c4
40c07a:	8b c6                	mov    %esi,%eax
40c07c:	e8 d7 81 ff ff       	call   0x404258
40c081:	3b d8                	cmp    %eax,%ebx
40c083:	7f 3f                	jg     0x40c0c4
40c085:	83 fb 01             	cmp    $0x1,%ebx
40c088:	7e 37                	jle    0x40c0c1
40c08a:	80 3d 4c e7 46 00 00 	cmpb   $0x0,0x46e74c
40c091:	74 2e                	je     0x40c0c1
40c093:	54                   	push   %esp
40c094:	8d 4c 24 08          	lea    0x8(%esp),%ecx
40c098:	8b d3                	mov    %ebx,%edx
40c09a:	4a                   	dec    %edx
40c09b:	8b c6                	mov    %esi,%eax
40c09d:	e8 36 ff ff ff       	call   0x40bfd8
40c0a2:	4b                   	dec    %ebx
40c0a3:	3b 5c 24 04          	cmp    0x4(%esp),%ebx
40c0a7:	7f 0c                	jg     0x40c0b5
40c0a9:	8b c6                	mov    %esi,%eax
40c0ab:	e8 a8 81 ff ff       	call   0x404258
40c0b0:	3b 04 24             	cmp    (%esp),%eax
40c0b3:	7f 07                	jg     0x40c0bc
40c0b5:	33 c0                	xor    %eax,%eax
40c0b7:	89 04 24             	mov    %eax,(%esp)
40c0ba:	eb 08                	jmp    0x40c0c4
40c0bc:	ff 04 24             	incl   (%esp)
40c0bf:	eb 03                	jmp    0x40c0c4
40c0c1:	89 1c 24             	mov    %ebx,(%esp)
40c0c4:	8b 04 24             	mov    (%esp),%eax
40c0c7:	59                   	pop    %ecx
40c0c8:	5a                   	pop    %edx
40c0c9:	5e                   	pop    %esi
40c0ca:	5b                   	pop    %ebx
40c0cb:	c3                   	ret
40c0cc:	53                   	push   %ebx
40c0cd:	56                   	push   %esi
40c0ce:	83 c4 f8             	add    $0xfffffff8,%esp
40c0d1:	8b da                	mov    %edx,%ebx
40c0d3:	8b f0                	mov    %eax,%esi
40c0d5:	33 c0                	xor    %eax,%eax
40c0d7:	89 04 24             	mov    %eax,(%esp)
40c0da:	85 db                	test   %ebx,%ebx
40c0dc:	7e 46                	jle    0x40c124
40c0de:	8b c6                	mov    %esi,%eax
40c0e0:	e8 73 81 ff ff       	call   0x404258
40c0e5:	3b d8                	cmp    %eax,%ebx
40c0e7:	7e 09                	jle    0x40c0f2
40c0e9:	8b c6                	mov    %esi,%eax
40c0eb:	e8 68 81 ff ff       	call   0x404258
40c0f0:	8b d8                	mov    %eax,%ebx
40c0f2:	80 3d 4c e7 46 00 00 	cmpb   $0x0,0x46e74c
40c0f9:	74 26                	je     0x40c121
40c0fb:	54                   	push   %esp
40c0fc:	8d 4c 24 08          	lea    0x8(%esp),%ecx
40c100:	8b d3                	mov    %ebx,%edx
40c102:	8b c6                	mov    %esi,%eax
40c104:	e8 cf fe ff ff       	call   0x40bfd8
40c109:	8b c6                	mov    %esi,%eax
40c10b:	e8 48 81 ff ff       	call   0x404258
40c110:	3b 04 24             	cmp    (%esp),%eax
40c113:	7d 0f                	jge    0x40c124
40c115:	8b c6                	mov    %esi,%eax
40c117:	e8 3c 81 ff ff       	call   0x404258
40c11c:	89 04 24             	mov    %eax,(%esp)
40c11f:	eb 03                	jmp    0x40c124
40c121:	89 1c 24             	mov    %ebx,(%esp)
40c124:	8b 04 24             	mov    (%esp),%eax
40c127:	59                   	pop    %ecx
40c128:	5a                   	pop    %edx
40c129:	5e                   	pop    %esi
40c12a:	5b                   	pop    %ebx
40c12b:	c3                   	ret
40c12c:	53                   	push   %ebx
40c12d:	8b d8                	mov    %eax,%ebx
40c12f:	80 3d 4c e7 46 00 00 	cmpb   $0x0,0x46e74c
40c136:	74 0a                	je     0x40c142
40c138:	53                   	push   %ebx
40c139:	e8 06 a3 ff ff       	call   0x406444
40c13e:	2b c3                	sub    %ebx,%eax
40c140:	5b                   	pop    %ebx
40c141:	c3                   	ret
40c142:	b8 01 00 00 00       	mov    $0x1,%eax
40c147:	5b                   	pop    %ebx
40c148:	c3                   	ret
40c149:	8d 40 00             	lea    0x0(%eax),%eax
40c14c:	50                   	push   %eax
40c14d:	e8 f2 a2 ff ff       	call   0x406444
40c152:	c3                   	ret
40c153:	90                   	nop
40c154:	53                   	push   %ebx
40c155:	56                   	push   %esi
40c156:	8b f2                	mov    %edx,%esi
40c158:	8b d8                	mov    %eax,%ebx
40c15a:	b8 01 00 00 00       	mov    $0x1,%eax
40c15f:	80 3d 4c e7 46 00 00 	cmpb   $0x0,0x46e74c
40c166:	74 22                	je     0x40c18a
40c168:	8a 54 33 ff          	mov    -0x1(%ebx,%esi,1),%dl
40c16c:	81 e2 ff 00 00 00    	and    $0xff,%edx
40c172:	0f a3 15 0c 31 46 00 	bt     %edx,0x46310c
40c179:	73 0f                	jae    0x40c18a
40c17b:	8b c3                	mov    %ebx,%eax
40c17d:	e8 d6 82 ff ff       	call   0x404458
40c182:	03 c6                	add    %esi,%eax
40c184:	48                   	dec    %eax
40c185:	e8 a2 ff ff ff       	call   0x40c12c
40c18a:	5e                   	pop    %esi
40c18b:	5b                   	pop    %ebx
40c18c:	c3                   	ret
40c18d:	8d 40 00             	lea    0x0(%eax),%eax
40c190:	53                   	push   %ebx
40c191:	56                   	push   %esi
40c192:	8b da                	mov    %edx,%ebx
40c194:	8b f0                	mov    %eax,%esi
40c196:	8d 43 01             	lea    0x1(%ebx),%eax
40c199:	80 3d 4c e7 46 00 00 	cmpb   $0x0,0x46e74c
40c1a0:	74 24                	je     0x40c1c6
40c1a2:	8a 54 1e ff          	mov    -0x1(%esi,%ebx,1),%dl
40c1a6:	81 e2 ff 00 00 00    	and    $0xff,%edx
40c1ac:	0f a3 15 0c 31 46 00 	bt     %edx,0x46310c
40c1b3:	73 11                	jae    0x40c1c6
40c1b5:	8b c6                	mov    %esi,%eax
40c1b7:	e8 9c 82 ff ff       	call   0x404458
40c1bc:	03 c3                	add    %ebx,%eax
40c1be:	48                   	dec    %eax
40c1bf:	e8 68 ff ff ff       	call   0x40c12c
40c1c4:	03 c3                	add    %ebx,%eax
40c1c6:	5e                   	pop    %esi
40c1c7:	5b                   	pop    %ebx
40c1c8:	c3                   	ret
40c1c9:	8d 40 00             	lea    0x0(%eax),%eax
40c1cc:	53                   	push   %ebx
40c1cd:	56                   	push   %esi
40c1ce:	8b da                	mov    %edx,%ebx
40c1d0:	8b f0                	mov    %eax,%esi
40c1d2:	85 db                	test   %ebx,%ebx
40c1d4:	7e 1f                	jle    0x40c1f5
40c1d6:	8b c6                	mov    %esi,%eax
40c1d8:	e8 7b 80 ff ff       	call   0x404258
40c1dd:	3b d8                	cmp    %eax,%ebx
40c1df:	7f 14                	jg     0x40c1f5
40c1e1:	80 7c 1e ff 5c       	cmpb   $0x5c,-0x1(%esi,%ebx,1)
40c1e6:	75 0d                	jne    0x40c1f5
40c1e8:	8b d3                	mov    %ebx,%edx
40c1ea:	8b c6                	mov    %esi,%eax
40c1ec:	e8 2b fd ff ff       	call   0x40bf1c
40c1f1:	84 c0                	test   %al,%al
40c1f3:	74 05                	je     0x40c1fa
40c1f5:	33 c0                	xor    %eax,%eax
40c1f7:	5e                   	pop    %esi
40c1f8:	5b                   	pop    %ebx
40c1f9:	c3                   	ret
40c1fa:	b0 01                	mov    $0x1,%al
40c1fc:	5e                   	pop    %esi
40c1fd:	5b                   	pop    %ebx
40c1fe:	c3                   	ret
40c1ff:	90                   	nop
40c200:	53                   	push   %ebx
40c201:	56                   	push   %esi
40c202:	57                   	push   %edi
40c203:	55                   	push   %ebp
40c204:	8b f9                	mov    %ecx,%edi
40c206:	8b f2                	mov    %edx,%esi
40c208:	8b e8                	mov    %eax,%ebp
40c20a:	33 db                	xor    %ebx,%ebx
40c20c:	85 ff                	test   %edi,%edi
40c20e:	7e 2d                	jle    0x40c23d
40c210:	8b c6                	mov    %esi,%eax
40c212:	e8 41 80 ff ff       	call   0x404258
40c217:	3b f8                	cmp    %eax,%edi
40c219:	7f 22                	jg     0x40c23d
40c21b:	8b d7                	mov    %edi,%edx
40c21d:	8b c6                	mov    %esi,%eax
40c21f:	e8 f8 fc ff ff       	call   0x40bf1c
40c224:	84 c0                	test   %al,%al
40c226:	75 15                	jne    0x40c23d
40c228:	8b c5                	mov    %ebp,%eax
40c22a:	e8 29 82 ff ff       	call   0x404458
40c22f:	8a 54 3e ff          	mov    -0x1(%esi,%edi,1),%dl
40c233:	e8 58 c5 ff ff       	call   0x408790
40c238:	85 c0                	test   %eax,%eax
40c23a:	0f 95 c3             	setne  %bl
40c23d:	8b c3                	mov    %ebx,%eax
40c23f:	5d                   	pop    %ebp
40c240:	5f                   	pop    %edi
40c241:	5e                   	pop    %esi
40c242:	5b                   	pop    %ebx
40c243:	c3                   	ret
40c244:	53                   	push   %ebx
40c245:	56                   	push   %esi
40c246:	57                   	push   %edi
40c247:	55                   	push   %ebp
40c248:	8b f2                	mov    %edx,%esi
40c24a:	8b d8                	mov    %eax,%ebx
40c24c:	33 ff                	xor    %edi,%edi
40c24e:	8b c3                	mov    %ebx,%eax
40c250:	e8 03 82 ff ff       	call   0x404458
40c255:	50                   	push   %eax
40c256:	8b c6                	mov    %esi,%eax
40c258:	e8 fb 81 ff ff       	call   0x404458
40c25d:	8b e8                	mov    %eax,%ebp
40c25f:	8b c5                	mov    %ebp,%eax
40c261:	5a                   	pop    %edx
40c262:	e8 a1 00 00 00       	call   0x40c308
40c267:	8b d8                	mov    %eax,%ebx
40c269:	85 db                	test   %ebx,%ebx
40c26b:	74 05                	je     0x40c272
40c26d:	8b fb                	mov    %ebx,%edi
40c26f:	2b fd                	sub    %ebp,%edi
40c271:	47                   	inc    %edi
40c272:	8b c7                	mov    %edi,%eax
40c274:	5d                   	pop    %ebp
40c275:	5f                   	pop    %edi
40c276:	5e                   	pop    %esi
40c277:	5b                   	pop    %ebx
40c278:	c3                   	ret
40c279:	8d 40 00             	lea    0x0(%eax),%eax
40c27c:	53                   	push   %ebx
40c27d:	56                   	push   %esi
40c27e:	57                   	push   %edi
40c27f:	55                   	push   %ebp
40c280:	8b fa                	mov    %edx,%edi
40c282:	8b f0                	mov    %eax,%esi
40c284:	80 3d 4c e7 46 00 00 	cmpb   $0x0,0x46e74c
40c28b:	74 6d                	je     0x40c2fa
40c28d:	8b c6                	mov    %esi,%eax
40c28f:	e8 c4 7f ff ff       	call   0x404258
40c294:	8b e8                	mov    %eax,%ebp
40c296:	8b c7                	mov    %edi,%eax
40c298:	8b d5                	mov    %ebp,%edx
40c29a:	e8 45 83 ff ff       	call   0x4045e4
40c29f:	bb 01 00 00 00       	mov    $0x1,%ebx
40c2a4:	3b eb                	cmp    %ebx,%ebp
40c2a6:	7c 5b                	jl     0x40c303