40c031:	eb 12                	jmp    0x40c045
40c033:	6a 01                	push   $0x1
40c035:	58                   	pop    %eax
40c036:	c3                   	ret
40c037:	8b 65 e8             	mov    -0x18(%ebp),%esp
40c03a:	33 ff                	xor    %edi,%edi
40c03c:	33 db                	xor    %ebx,%ebx
40c03e:	83 4d fc ff          	orl    $0xffffffff,-0x4(%ebp)
40c042:	8b 75 d8             	mov    -0x28(%ebp),%esi
40c045:	3b df                	cmp    %edi,%ebx
40c047:	74 b4                	je     0x40bffd
40c049:	56                   	push   %esi
40c04a:	53                   	push   %ebx
40c04b:	ff 75 e4             	push   -0x1c(%ebp)
40c04e:	ff 75 dc             	push   -0x24(%ebp)
40c051:	ff 75 0c             	push   0xc(%ebp)
40c054:	ff 75 08             	push   0x8(%ebp)
40c057:	ff 15 34 d0 40 00    	call   *0x40d034
40c05d:	85 c0                	test   %eax,%eax
40c05f:	74 9c                	je     0x40bffd
40c061:	39 7d 1c             	cmp    %edi,0x1c(%ebp)
40c064:	57                   	push   %edi
40c065:	57                   	push   %edi
40c066:	75 04                	jne    0x40c06c
40c068:	57                   	push   %edi
40c069:	57                   	push   %edi
40c06a:	eb 06                	jmp    0x40c072
40c06c:	ff 75 1c             	push   0x1c(%ebp)
40c06f:	ff 75 18             	push   0x18(%ebp)
40c072:	56                   	push   %esi
40c073:	53                   	push   %ebx
40c074:	68 20 02 00 00       	push   $0x220
40c079:	ff 75 20             	push   0x20(%ebp)
40c07c:	ff 15 18 d1 40 00    	call   *0x40d118
40c082:	8b f0                	mov    %eax,%esi
40c084:	3b f7                	cmp    %edi,%esi
40c086:	0f 84 71 ff ff ff    	je     0x40bffd
40c08c:	8b c6                	mov    %esi,%eax
40c08e:	e9 6c ff ff ff       	jmp    0x40bfff
40c093:	8b 54 24 08          	mov    0x8(%esp),%edx
40c097:	8b 44 24 04          	mov    0x4(%esp),%eax
40c09b:	85 d2                	test   %edx,%edx
40c09d:	56                   	push   %esi
40c09e:	8d 4a ff             	lea    -0x1(%edx),%ecx
40c0a1:	74 0d                	je     0x40c0b0
40c0a3:	80 38 00             	cmpb   $0x0,(%eax)
40c0a6:	74 08                	je     0x40c0b0
40c0a8:	40                   	inc    %eax
40c0a9:	8b f1                	mov    %ecx,%esi
40c0ab:	49                   	dec    %ecx
40c0ac:	85 f6                	test   %esi,%esi
40c0ae:	75 f3                	jne    0x40c0a3
40c0b0:	80 38 00             	cmpb   $0x0,(%eax)
40c0b3:	5e                   	pop    %esi
40c0b4:	75 05                	jne    0x40c0bb
40c0b6:	2b 44 24 04          	sub    0x4(%esp),%eax
40c0ba:	c3                   	ret
40c0bb:	8b c2                	mov    %edx,%eax
40c0bd:	c3                   	ret
40c0be:	55                   	push   %ebp
40c0bf:	8b ec                	mov    %esp,%ebp
40c0c1:	83 ec 0c             	sub    $0xc,%esp
40c0c4:	8b 45 08             	mov    0x8(%ebp),%eax
40c0c7:	83 65 fc 00          	andl   $0x0,-0x4(%ebp)
40c0cb:	48                   	dec    %eax
40c0cc:	53                   	push   %ebx
40c0cd:	56                   	push   %esi
40c0ce:	48                   	dec    %eax
40c0cf:	57                   	push   %edi
40c0d0:	74 67                	je     0x40c139
40c0d2:	48                   	dec    %eax
40c0d3:	48                   	dec    %eax
40c0d4:	74 46                	je     0x40c11c
40c0d6:	83 e8 04             	sub    $0x4,%eax
40c0d9:	74 41                	je     0x40c11c
40c0db:	83 e8 03             	sub    $0x3,%eax
40c0de:	74 3c                	je     0x40c11c
40c0e0:	83 e8 04             	sub    $0x4,%eax
40c0e3:	74 2a                	je     0x40c10f
40c0e5:	83 e8 06             	sub    $0x6,%eax
40c0e8:	74 18                	je     0x40c102
40c0ea:	48                   	dec    %eax
40c0eb:	74 08                	je     0x40c0f5
40c0ed:	83 c8 ff             	or     $0xffffffff,%eax
40c0f0:	e9 46 01 00 00       	jmp    0x40c23b
40c0f5:	8b 1d 7c 1a 41 00    	mov    0x411a7c,%ebx
40c0fb:	bf 7c 1a 41 00       	mov    $0x411a7c,%edi
40c100:	eb 42                	jmp    0x40c144
40c102:	8b 1d 78 1a 41 00    	mov    0x411a78,%ebx
40c108:	bf 78 1a 41 00       	mov    $0x411a78,%edi
40c10d:	eb 35                	jmp    0x40c144
40c10f:	8b 1d 80 1a 41 00    	mov    0x411a80,%ebx
40c115:	bf 80 1a 41 00       	mov    $0x411a80,%edi
40c11a:	eb 28                	jmp    0x40c144
40c11c:	e8 a6 c5 ff ff       	call   0x4086c7
40c121:	8b f0                	mov    %eax,%esi
40c123:	ff 76 50             	push   0x50(%esi)
40c126:	ff 75 08             	push   0x8(%ebp)
40c129:	e8 12 01 00 00       	call   0x40c240
40c12e:	8b f8                	mov    %eax,%edi
40c130:	59                   	pop    %ecx
40c131:	83 c7 08             	add    $0x8,%edi
40c134:	59                   	pop    %ecx
40c135:	8b 1f                	mov    (%edi),%ebx
40c137:	eb 1d                	jmp    0x40c156
40c139:	8b 1d 74 1a 41 00    	mov    0x411a74,%ebx
40c13f:	bf 74 1a 41 00       	mov    $0x411a74,%edi
40c144:	6a 01                	push   $0x1
40c146:	c7 45 fc 01 00 00 00 	movl   $0x1,-0x4(%ebp)
40c14d:	e8 a3 ae ff ff       	call   0x406ff5
40c152:	8b 75 08             	mov    0x8(%ebp),%esi
40c155:	59                   	pop    %ecx
40c156:	83 fb 01             	cmp    $0x1,%ebx
40c159:	75 16                	jne    0x40c171
40c15b:	83 7d fc 00          	cmpl   $0x0,-0x4(%ebp)
40c15f:	0f 84 d4 00 00 00    	je     0x40c239
40c165:	53                   	push   %ebx
40c166:	e8 eb ae ff ff       	call   0x407056
40c16b:	59                   	pop    %ecx
40c16c:	e9 c8 00 00 00       	jmp    0x40c239
40c171:	33 c9                	xor    %ecx,%ecx
40c173:	3b d9                	cmp    %ecx,%ebx
40c175:	75 14                	jne    0x40c18b
40c177:	39 4d fc             	cmp    %ecx,-0x4(%ebp)
40c17a:	74 08                	je     0x40c184
40c17c:	6a 01                	push   $0x1
40c17e:	e8 d3 ae ff ff       	call   0x407056
40c183:	59                   	pop    %ecx
40c184:	6a 03                	push   $0x3
40c186:	e8 a3 af ff ff       	call   0x40712e
40c18b:	8b 45 08             	mov    0x8(%ebp),%eax
40c18e:	83 f8 08             	cmp    $0x8,%eax
40c191:	74 0a                	je     0x40c19d
40c193:	83 f8 0b             	cmp    $0xb,%eax
40c196:	74 05                	je     0x40c19d
40c198:	83 f8 04             	cmp    $0x4,%eax
40c19b:	75 1b                	jne    0x40c1b8
40c19d:	8b 56 54             	mov    0x54(%esi),%edx
40c1a0:	83 f8 08             	cmp    $0x8,%eax
40c1a3:	89 55 f8             	mov    %edx,-0x8(%ebp)
40c1a6:	89 4e 54             	mov    %ecx,0x54(%esi)
40c1a9:	75 49                	jne    0x40c1f4
40c1ab:	8b 56 58             	mov    0x58(%esi),%edx
40c1ae:	c7 46 58 8c 00 00 00 	movl   $0x8c,0x58(%esi)
40c1b5:	89 55 f4             	mov    %edx,-0xc(%ebp)
40c1b8:	83 f8 08             	cmp    $0x8,%eax
40c1bb:	75 37                	jne    0x40c1f4
40c1bd:	8b 0d f8 0d 41 00    	mov    0x410df8,%ecx
40c1c3:	a1 fc 0d 41 00       	mov    0x410dfc,%eax
40c1c8:	03 c1                	add    %ecx,%eax
40c1ca:	3b c8                	cmp    %eax,%ecx
40c1cc:	7d 28                	jge    0x40c1f6
40c1ce:	8d 04 49             	lea    (%ecx,%ecx,2),%eax
40c1d1:	c1 e0 02             	shl    $0x2,%eax
40c1d4:	8b 56 50             	mov    0x50(%esi),%edx
40c1d7:	83 c0 0c             	add    $0xc,%eax
40c1da:	83 64 02 fc 00       	andl   $0x0,-0x4(%edx,%eax,1)
40c1df:	8b 15 f8 0d 41 00    	mov    0x410df8,%edx
40c1e5:	8b 3d fc 0d 41 00    	mov    0x410dfc,%edi
40c1eb:	41                   	inc    %ecx
40c1ec:	03 fa                	add    %edx,%edi
40c1ee:	3b cf                	cmp    %edi,%ecx
40c1f0:	7c e2                	jl     0x40c1d4
40c1f2:	eb 02                	jmp    0x40c1f6
40c1f4:	89 0f                	mov    %ecx,(%edi)
40c1f6:	83 7d fc 00          	cmpl   $0x0,-0x4(%ebp)
40c1fa:	74 08                	je     0x40c204
40c1fc:	6a 01                	push   $0x1
40c1fe:	e8 53 ae ff ff       	call   0x407056
40c203:	59                   	pop    %ecx
40c204:	83 7d 08 08          	cmpl   $0x8,0x8(%ebp)
40c208:	75 0b                	jne    0x40c215
40c20a:	ff 76 58             	push   0x58(%esi)
40c20d:	6a 08                	push   $0x8
40c20f:	ff d3                	call   *%ebx
40c211:	59                   	pop    %ecx
40c212:	59                   	pop    %ecx
40c213:	eb 12                	jmp    0x40c227
40c215:	ff 75 08             	push   0x8(%ebp)
40c218:	ff d3                	call   *%ebx
40c21a:	83 7d 08 0b          	cmpl   $0xb,0x8(%ebp)
40c21e:	59                   	pop    %ecx
40c21f:	74 06                	je     0x40c227
40c221:	83 7d 08 04          	cmpl   $0x4,0x8(%ebp)
40c225:	75 12                	jne    0x40c239
40c227:	8b 45 f8             	mov    -0x8(%ebp),%eax
40c22a:	83 7d 08 08          	cmpl   $0x8,0x8(%ebp)
40c22e:	89 46 54             	mov    %eax,0x54(%esi)
40c231:	75 06                	jne    0x40c239
40c233:	8b 45 f4             	mov    -0xc(%ebp),%eax
40c236:	89 46 58             	mov    %eax,0x58(%esi)
40c239:	33 c0                	xor    %eax,%eax
40c23b:	5f                   	pop    %edi
40c23c:	5e                   	pop    %esi
40c23d:	5b                   	pop    %ebx
40c23e:	c9                   	leave
40c23f:	c3                   	ret
40c240:	8b 54 24 08          	mov    0x8(%esp),%edx
40c244:	8b 0d 04 0e 41 00    	mov    0x410e04,%ecx
40c24a:	56                   	push   %esi
40c24b:	8b 74 24 08          	mov    0x8(%esp),%esi
40c24f:	39 72 04             	cmp    %esi,0x4(%edx)
40c252:	57                   	push   %edi
40c253:	8b c2                	mov    %edx,%eax
40c255:	74 12                	je     0x40c269
40c257:	8d 3c 49             	lea    (%ecx,%ecx,2),%edi
40c25a:	8d 3c ba             	lea    (%edx,%edi,4),%edi
40c25d:	83 c0 0c             	add    $0xc,%eax
40c260:	3b c7                	cmp    %edi,%eax
40c262:	73 05                	jae    0x40c269
40c264:	39 70 04             	cmp    %esi,0x4(%eax)
40c267:	75 f4                	jne    0x40c25d
40c269:	8d 0c 49             	lea    (%ecx,%ecx,2),%ecx
40c26c:	8d 0c 8a             	lea    (%edx,%ecx,4),%ecx
40c26f:	3b c1                	cmp    %ecx,%eax
40c271:	73 05                	jae    0x40c278
40c273:	39 70 04             	cmp    %esi,0x4(%eax)
40c276:	74 02                	je     0x40c27a
40c278:	33 c0                	xor    %eax,%eax
40c27a:	5f                   	pop    %edi
40c27b:	5e                   	pop    %esi
40c27c:	c3                   	ret
40c27d:	55                   	push   %ebp
40c27e:	8b ec                	mov    %esp,%ebp
40c280:	51                   	push   %ecx
40c281:	83 3d 6c 18 41 00 00 	cmpl   $0x0,0x41186c
40c288:	53                   	push   %ebx
40c289:	56                   	push   %esi
40c28a:	57                   	push   %edi
40c28b:	75 1d                	jne    0x40c2aa
40c28d:	8b 45 08             	mov    0x8(%ebp),%eax
40c290:	83 f8 41             	cmp    $0x41,%eax
40c293:	0f 8c aa 00 00 00    	jl     0x40c343
40c299:	83 f8 5a             	cmp    $0x5a,%eax
40c29c:	0f 8f a1 00 00 00    	jg     0x40c343
40c2a2:	83 c0 20             	add    $0x20,%eax
40c2a5:	e9 99 00 00 00       	jmp    0x40c343
40c2aa:	8b 5d 08             	mov    0x8(%ebp),%ebx
40c2ad:	bf 00 01 00 00       	mov    $0x100,%edi
40c2b2:	6a 01                	push   $0x1
40c2b4:	3b df                	cmp    %edi,%ebx
40c2b6:	5e                   	pop    %esi
40c2b7:	7d 25                	jge    0x40c2de
40c2b9:	39 35 60 0d 41 00    	cmp    %esi,0x410d60
40c2bf:	7e 0b                	jle    0x40c2cc
40c2c1:	56                   	push   %esi
40c2c2:	53                   	push   %ebx
40c2c3:	e8 12 ba ff ff       	call   0x407cda
40c2c8:	59                   	pop    %ecx
40c2c9:	59                   	pop    %ecx
40c2ca:	eb 0a                	jmp    0x40c2d6
40c2cc:	a1 ec 09 41 00       	mov    0x4109ec,%eax
40c2d1:	8a 04 58             	mov    (%eax,%ebx,2),%al
40c2d4:	23 c6                	and    %esi,%eax
40c2d6:	85 c0                	test   %eax,%eax
40c2d8:	75 04                	jne    0x40c2de
40c2da:	8b c3                	mov    %ebx,%eax
40c2dc:	eb 65                	jmp    0x40c343
40c2de:	8b 15 ec 09 41 00    	mov    0x4109ec,%edx
40c2e4:	8b c3                	mov    %ebx,%eax
40c2e6:	c1 f8 08             	sar    $0x8,%eax
40c2e9:	0f b6 c8             	movzbl %al,%ecx
40c2ec:	f6 44 4a 01 80       	testb  $0x80,0x1(%edx,%ecx,2)
40c2f1:	74 0f                	je     0x40c302
40c2f3:	80 65 0a 00          	andb   $0x0,0xa(%ebp)
40c2f7:	6a 02                	push   $0x2
40c2f9:	88 45 08             	mov    %al,0x8(%ebp)
40c2fc:	88 5d 09             	mov    %bl,0x9(%ebp)
40c2ff:	58                   	pop    %eax
40c300:	eb 09                	jmp    0x40c30b
40c302:	80 65 09 00          	andb   $0x0,0x9(%ebp)
40c306:	88 5d 08             	mov    %bl,0x8(%ebp)
40c309:	8b c6                	mov    %esi,%eax
40c30b:	56                   	push   %esi
40c30c:	6a 00                	push   $0x0
40c30e:	8d 4d fc             	lea    -0x4(%ebp),%ecx
40c311:	6a 03                	push   $0x3
40c313:	51                   	push   %ecx
40c314:	50                   	push   %eax
40c315:	8d 45 08             	lea    0x8(%ebp),%eax
40c318:	50                   	push   %eax
40c319:	57                   	push   %edi
40c31a:	ff 35 6c 18 41 00    	push   0x41186c
40c320:	e8 4a fb ff ff       	call   0x40be6f
40c325:	83 c4 20             	add    $0x20,%esp
40c328:	85 c0                	test   %eax,%eax
40c32a:	74 ae                	je     0x40c2da
40c32c:	3b c6                	cmp    %esi,%eax
40c32e:	75 06                	jne    0x40c336
40c330:	0f b6 45 fc          	movzbl -0x4(%ebp),%eax
40c334:	eb 0d                	jmp    0x40c343
40c336:	0f b6 45 fd          	movzbl -0x3(%ebp),%eax
40c33a:	0f b6 4d fc          	movzbl -0x4(%ebp),%ecx
40c33e:	c1 e0 08             	shl    $0x8,%eax
40c341:	0b c1                	or     %ecx,%eax
40c343:	5f                   	pop    %edi
40c344:	5e                   	pop    %esi
40c345:	5b                   	pop    %ebx
40c346:	c9                   	leave
40c347:	c3                   	ret
40c348:	cc                   	int3
40c349:	cc                   	int3
40c34a:	cc                   	int3
40c34b:	cc                   	int3
40c34c:	cc                   	int3
40c34d:	cc                   	int3
40c34e:	cc                   	int3
40c34f:	cc                   	int3
40c350:	8d 42 ff             	lea    -0x1(%edx),%eax
40c353:	5b                   	pop    %ebx
40c354:	c3                   	ret
40c355:	8d a4 24 00 00 00 00 	lea    0x0(%esp),%esp
40c35c:	8d 64 24 00          	lea    0x0(%esp),%esp
40c360:	33 c0                	xor    %eax,%eax
40c362:	8a 44 24 08          	mov    0x8(%esp),%al
40c366:	53                   	push   %ebx
40c367:	8b d8                	mov    %eax,%ebx
40c369:	c1 e0 08             	shl    $0x8,%eax
40c36c:	8b 54 24 08          	mov    0x8(%esp),%edx
40c370:	f7 c2 03 00 00 00    	test   $0x3,%edx
40c376:	74 13                	je     0x40c38b
40c378:	8a 0a                	mov    (%edx),%cl
40c37a:	42                   	inc    %edx
40c37b:	38 d9                	cmp    %bl,%cl
40c37d:	74 d1                	je     0x40c350
40c37f:	84 c9                	test   %cl,%cl
40c381:	74 51                	je     0x40c3d4
40c383:	f7 c2 03 00 00 00    	test   $0x3,%edx
40c389:	75 ed                	jne    0x40c378
40c38b:	0b d8                	or     %eax,%ebx
40c38d:	57                   	push   %edi
40c38e:	8b c3                	mov    %ebx,%eax
40c390:	c1 e3 10             	shl    $0x10,%ebx
40c393:	56                   	push   %esi
40c394:	0b d8                	or     %eax,%ebx
40c396:	8b 0a                	mov    (%edx),%ecx
40c398:	bf ff fe fe 7e       	mov    $0x7efefeff,%edi
40c39d:	8b c1                	mov    %ecx,%eax
40c39f:	8b f7                	mov    %edi,%esi
40c3a1:	33 cb                	xor    %ebx,%ecx
40c3a3:	03 f0                	add    %eax,%esi
40c3a5:	03 f9                	add    %ecx,%edi
40c3a7:	83 f1 ff             	xor    $0xffffffff,%ecx
40c3aa:	83 f0 ff             	xor    $0xffffffff,%eax
40c3ad:	33 cf                	xor    %edi,%ecx
40c3af:	33 c6                	xor    %esi,%eax
40c3b1:	83 c2 04             	add    $0x4,%edx
40c3b4:	81 e1 00 01 01 81    	and    $0x81010100,%ecx
40c3ba:	75 1c                	jne    0x40c3d8
40c3bc:	25 00 01 01 81       	and    $0x81010100,%eax