407187:	8b 46 0c             	mov    0xc(%esi),%eax
40718a:	3b 05 d4 ba 40 00    	cmp    0x40bad4,%eax
407190:	74 07                	je     0x407199
407192:	50                   	push   %eax
407193:	e8 06 e6 ff ff       	call   0x40579e
407198:	59                   	pop    %ecx
407199:	8b 46 10             	mov    0x10(%esi),%eax
40719c:	3b 05 d8 ba 40 00    	cmp    0x40bad8,%eax
4071a2:	74 07                	je     0x4071ab
4071a4:	50                   	push   %eax
4071a5:	e8 f4 e5 ff ff       	call   0x40579e
4071aa:	59                   	pop    %ecx
4071ab:	8b 46 14             	mov    0x14(%esi),%eax
4071ae:	3b 05 dc ba 40 00    	cmp    0x40badc,%eax
4071b4:	74 07                	je     0x4071bd
4071b6:	50                   	push   %eax
4071b7:	e8 e2 e5 ff ff       	call   0x40579e
4071bc:	59                   	pop    %ecx
4071bd:	8b 46 18             	mov    0x18(%esi),%eax
4071c0:	3b 05 e0 ba 40 00    	cmp    0x40bae0,%eax
4071c6:	74 07                	je     0x4071cf
4071c8:	50                   	push   %eax
4071c9:	e8 d0 e5 ff ff       	call   0x40579e
4071ce:	59                   	pop    %ecx
4071cf:	8b 46 1c             	mov    0x1c(%esi),%eax
4071d2:	3b 05 e4 ba 40 00    	cmp    0x40bae4,%eax
4071d8:	74 07                	je     0x4071e1
4071da:	50                   	push   %eax
4071db:	e8 be e5 ff ff       	call   0x40579e
4071e0:	59                   	pop    %ecx
4071e1:	8b 46 20             	mov    0x20(%esi),%eax
4071e4:	3b 05 e8 ba 40 00    	cmp    0x40bae8,%eax
4071ea:	74 07                	je     0x4071f3
4071ec:	50                   	push   %eax
4071ed:	e8 ac e5 ff ff       	call   0x40579e
4071f2:	59                   	pop    %ecx
4071f3:	8b 76 24             	mov    0x24(%esi),%esi
4071f6:	3b 35 ec ba 40 00    	cmp    0x40baec,%esi
4071fc:	74 07                	je     0x407205
4071fe:	56                   	push   %esi
4071ff:	e8 9a e5 ff ff       	call   0x40579e
407204:	59                   	pop    %ecx
407205:	5e                   	pop    %esi
407206:	5d                   	pop    %ebp
407207:	c3                   	ret
407208:	cc                   	int3
407209:	cc                   	int3
40720a:	cc                   	int3
40720b:	cc                   	int3
40720c:	cc                   	int3
40720d:	cc                   	int3
40720e:	cc                   	int3
40720f:	cc                   	int3
407210:	55                   	push   %ebp
407211:	8b ec                	mov    %esp,%ebp
407213:	56                   	push   %esi
407214:	33 c0                	xor    %eax,%eax
407216:	50                   	push   %eax
407217:	50                   	push   %eax
407218:	50                   	push   %eax
407219:	50                   	push   %eax
40721a:	50                   	push   %eax
40721b:	50                   	push   %eax
40721c:	50                   	push   %eax
40721d:	50                   	push   %eax
40721e:	8b 55 0c             	mov    0xc(%ebp),%edx
407221:	8d 49 00             	lea    0x0(%ecx),%ecx
407224:	8a 02                	mov    (%edx),%al
407226:	0a c0                	or     %al,%al
407228:	74 09                	je     0x407233
40722a:	83 c2 01             	add    $0x1,%edx
40722d:	0f ab 04 24          	bts    %eax,(%esp)
407231:	eb f1                	jmp    0x407224
407233:	8b 75 08             	mov    0x8(%ebp),%esi
407236:	83 c9 ff             	or     $0xffffffff,%ecx
407239:	8d 49 00             	lea    0x0(%ecx),%ecx
40723c:	83 c1 01             	add    $0x1,%ecx
40723f:	8a 06                	mov    (%esi),%al
407241:	0a c0                	or     %al,%al
407243:	74 09                	je     0x40724e
407245:	83 c6 01             	add    $0x1,%esi
407248:	0f a3 04 24          	bt     %eax,(%esp)
40724c:	73 ee                	jae    0x40723c
40724e:	8b c1                	mov    %ecx,%eax
407250:	83 c4 20             	add    $0x20,%esp
407253:	5e                   	pop    %esi
407254:	c9                   	leave
407255:	c3                   	ret
407256:	cc                   	int3
407257:	cc                   	int3
407258:	cc                   	int3
407259:	cc                   	int3
40725a:	cc                   	int3
40725b:	cc                   	int3
40725c:	cc                   	int3
40725d:	cc                   	int3
40725e:	cc                   	int3
40725f:	cc                   	int3
407260:	8b 54 24 04          	mov    0x4(%esp),%edx
407264:	8b 4c 24 08          	mov    0x8(%esp),%ecx
407268:	f7 c2 03 00 00 00    	test   $0x3,%edx
40726e:	75 3c                	jne    0x4072ac
407270:	8b 02                	mov    (%edx),%eax
407272:	3a 01                	cmp    (%ecx),%al
407274:	75 2e                	jne    0x4072a4
407276:	0a c0                	or     %al,%al
407278:	74 26                	je     0x4072a0
40727a:	3a 61 01             	cmp    0x1(%ecx),%ah
40727d:	75 25                	jne    0x4072a4
40727f:	0a e4                	or     %ah,%ah
407281:	74 1d                	je     0x4072a0
407283:	c1 e8 10             	shr    $0x10,%eax
407286:	3a 41 02             	cmp    0x2(%ecx),%al
407289:	75 19                	jne    0x4072a4
40728b:	0a c0                	or     %al,%al
40728d:	74 11                	je     0x4072a0
40728f:	3a 61 03             	cmp    0x3(%ecx),%ah
407292:	75 10                	jne    0x4072a4
407294:	83 c1 04             	add    $0x4,%ecx
407297:	83 c2 04             	add    $0x4,%edx
40729a:	0a e4                	or     %ah,%ah
40729c:	75 d2                	jne    0x407270
40729e:	8b ff                	mov    %edi,%edi
4072a0:	33 c0                	xor    %eax,%eax
4072a2:	c3                   	ret
4072a3:	90                   	nop
4072a4:	1b c0                	sbb    %eax,%eax
4072a6:	d1 e0                	shl    $1,%eax
4072a8:	83 c0 01             	add    $0x1,%eax
4072ab:	c3                   	ret
4072ac:	f7 c2 01 00 00 00    	test   $0x1,%edx
4072b2:	74 18                	je     0x4072cc
4072b4:	8a 02                	mov    (%edx),%al
4072b6:	83 c2 01             	add    $0x1,%edx
4072b9:	3a 01                	cmp    (%ecx),%al
4072bb:	75 e7                	jne    0x4072a4
4072bd:	83 c1 01             	add    $0x1,%ecx
4072c0:	0a c0                	or     %al,%al
4072c2:	74 dc                	je     0x4072a0
4072c4:	f7 c2 02 00 00 00    	test   $0x2,%edx
4072ca:	74 a4                	je     0x407270
4072cc:	66 8b 02             	mov    (%edx),%ax
4072cf:	83 c2 02             	add    $0x2,%edx
4072d2:	3a 01                	cmp    (%ecx),%al
4072d4:	75 ce                	jne    0x4072a4
4072d6:	0a c0                	or     %al,%al
4072d8:	74 c6                	je     0x4072a0
4072da:	3a 61 01             	cmp    0x1(%ecx),%ah
4072dd:	75 c5                	jne    0x4072a4
4072df:	0a e4                	or     %ah,%ah
4072e1:	74 bd                	je     0x4072a0
4072e3:	83 c1 02             	add    $0x2,%ecx
4072e6:	eb 88                	jmp    0x407270
4072e8:	cc                   	int3
4072e9:	cc                   	int3
4072ea:	cc                   	int3
4072eb:	cc                   	int3
4072ec:	cc                   	int3
4072ed:	cc                   	int3
4072ee:	cc                   	int3
4072ef:	cc                   	int3
4072f0:	55                   	push   %ebp
4072f1:	8b ec                	mov    %esp,%ebp
4072f3:	56                   	push   %esi
4072f4:	33 c0                	xor    %eax,%eax
4072f6:	50                   	push   %eax
4072f7:	50                   	push   %eax
4072f8:	50                   	push   %eax
4072f9:	50                   	push   %eax
4072fa:	50                   	push   %eax
4072fb:	50                   	push   %eax
4072fc:	50                   	push   %eax
4072fd:	50                   	push   %eax
4072fe:	8b 55 0c             	mov    0xc(%ebp),%edx
407301:	8d 49 00             	lea    0x0(%ecx),%ecx
407304:	8a 02                	mov    (%edx),%al
407306:	0a c0                	or     %al,%al
407308:	74 09                	je     0x407313
40730a:	83 c2 01             	add    $0x1,%edx
40730d:	0f ab 04 24          	bts    %eax,(%esp)
407311:	eb f1                	jmp    0x407304
407313:	8b 75 08             	mov    0x8(%ebp),%esi
407316:	8b ff                	mov    %edi,%edi
407318:	8a 06                	mov    (%esi),%al
40731a:	0a c0                	or     %al,%al
40731c:	74 0c                	je     0x40732a
40731e:	83 c6 01             	add    $0x1,%esi
407321:	0f a3 04 24          	bt     %eax,(%esp)
407325:	73 f1                	jae    0x407318
407327:	8d 46 ff             	lea    -0x1(%esi),%eax
40732a:	83 c4 20             	add    $0x20,%esp
40732d:	5e                   	pop    %esi
40732e:	c9                   	leave
40732f:	c3                   	ret
407330:	8b ff                	mov    %edi,%edi
407332:	55                   	push   %ebp
407333:	8b ec                	mov    %esp,%ebp
407335:	83 ec 10             	sub    $0x10,%esp
407338:	ff 75 0c             	push   0xc(%ebp)
40733b:	8d 4d f0             	lea    -0x10(%ebp),%ecx
40733e:	e8 93 b3 ff ff       	call   0x4026d6
407343:	0f b6 45 08          	movzbl 0x8(%ebp),%eax
407347:	8b 4d f0             	mov    -0x10(%ebp),%ecx
40734a:	8b 89 c8 00 00 00    	mov    0xc8(%ecx),%ecx
407350:	0f b7 04 41          	movzwl (%ecx,%eax,2),%eax
407354:	25 00 80 00 00       	and    $0x8000,%eax
407359:	80 7d fc 00          	cmpb   $0x0,-0x4(%ebp)
40735d:	74 07                	je     0x407366
40735f:	8b 4d f8             	mov    -0x8(%ebp),%ecx
407362:	83 61 70 fd          	andl   $0xfffffffd,0x70(%ecx)
407366:	c9                   	leave
407367:	c3                   	ret
407368:	8b ff                	mov    %edi,%edi
40736a:	55                   	push   %ebp
40736b:	8b ec                	mov    %esp,%ebp
40736d:	81 ec 28 03 00 00    	sub    $0x328,%esp
407373:	a1 04 b0 40 00       	mov    0x40b004,%eax
407378:	33 c5                	xor    %ebp,%eax
40737a:	89 45 fc             	mov    %eax,-0x4(%ebp)
40737d:	f6 05 10 bb 40 00 01 	testb  $0x1,0x40bb10
407384:	56                   	push   %esi
407385:	74 08                	je     0x40738f
407387:	6a 0a                	push   $0xa
407389:	e8 b1 b9 ff ff       	call   0x402d3f
40738e:	59                   	pop    %ecx
40738f:	e8 ae dd ff ff       	call   0x405142
407394:	85 c0                	test   %eax,%eax
407396:	74 08                	je     0x4073a0
407398:	6a 16                	push   $0x16
40739a:	e8 b0 dd ff ff       	call   0x40514f
40739f:	59                   	pop    %ecx
4073a0:	f6 05 10 bb 40 00 02 	testb  $0x2,0x40bb10
4073a7:	0f 84 ca 00 00 00    	je     0x407477
4073ad:	89 85 e0 fd ff ff    	mov    %eax,-0x220(%ebp)
4073b3:	89 8d dc fd ff ff    	mov    %ecx,-0x224(%ebp)
4073b9:	89 95 d8 fd ff ff    	mov    %edx,-0x228(%ebp)
4073bf:	89 9d d4 fd ff ff    	mov    %ebx,-0x22c(%ebp)
4073c5:	89 b5 d0 fd ff ff    	mov    %esi,-0x230(%ebp)
4073cb:	89 bd cc fd ff ff    	mov    %edi,-0x234(%ebp)
4073d1:	66 8c 95 f8 fd ff ff 	data16 mov %ss,-0x208(%ebp)
4073d8:	66 8c 8d ec fd ff ff 	data16 mov %cs,-0x214(%ebp)
4073df:	66 8c 9d c8 fd ff ff 	data16 mov %ds,-0x238(%ebp)
4073e6:	66 8c 85 c4 fd ff ff 	data16 mov %es,-0x23c(%ebp)
4073ed:	66 8c a5 c0 fd ff ff 	data16 mov %fs,-0x240(%ebp)
4073f4:	66 8c ad bc fd ff ff 	data16 mov %gs,-0x244(%ebp)
4073fb:	9c                   	pushf
4073fc:	8f 85 f0 fd ff ff    	pop    -0x210(%ebp)
407402:	8b 75 04             	mov    0x4(%ebp),%esi
407405:	8d 45 04             	lea    0x4(%ebp),%eax
407408:	89 85 f4 fd ff ff    	mov    %eax,-0x20c(%ebp)
40740e:	c7 85 30 fd ff ff 01 	movl   $0x10001,-0x2d0(%ebp)
407415:	00 01 00
407418:	89 b5 e8 fd ff ff    	mov    %esi,-0x218(%ebp)
40741e:	8b 40 fc             	mov    -0x4(%eax),%eax
407421:	6a 50                	push   $0x50
407423:	89 85 e4 fd ff ff    	mov    %eax,-0x21c(%ebp)
407429:	8d 85 d8 fc ff ff    	lea    -0x328(%ebp),%eax
40742f:	6a 00                	push   $0x0
407431:	50                   	push   %eax
407432:	e8 e9 f4 ff ff       	call   0x406920
407437:	8d 85 d8 fc ff ff    	lea    -0x328(%ebp),%eax
40743d:	83 c4 0c             	add    $0xc,%esp
407440:	89 85 28 fd ff ff    	mov    %eax,-0x2d8(%ebp)
407446:	8d 85 30 fd ff ff    	lea    -0x2d0(%ebp),%eax
40744c:	6a 00                	push   $0x0
40744e:	c7 85 d8 fc ff ff 15 	movl   $0x40000015,-0x328(%ebp)
407455:	00 00 40
407458:	89 b5 e4 fc ff ff    	mov    %esi,-0x31c(%ebp)
40745e:	89 85 2c fd ff ff    	mov    %eax,-0x2d4(%ebp)
407464:	ff 15 7c 10 40 00    	call   *0x40107c
40746a:	8d 85 28 fd ff ff    	lea    -0x2d8(%ebp),%eax
407470:	50                   	push   %eax
407471:	ff 15 78 10 40 00    	call   *0x401078
407477:	6a 03                	push   $0x3
407479:	e8 3f b8 ff ff       	call   0x402cbd
40747e:	cc                   	int3
40747f:	6a 10                	push   $0x10
407481:	68 98 a6 40 00       	push   $0x40a698
407486:	e8 e9 c7 ff ff       	call   0x403c74
40748b:	33 c0                	xor    %eax,%eax
40748d:	8b 5d 08             	mov    0x8(%ebp),%ebx
407490:	33 ff                	xor    %edi,%edi
407492:	3b df                	cmp    %edi,%ebx
407494:	0f 95 c0             	setne  %al
407497:	3b c7                	cmp    %edi,%eax
407499:	75 1d                	jne    0x4074b8
40749b:	e8 b9 d6 ff ff       	call   0x404b59
4074a0:	c7 00 16 00 00 00    	movl   $0x16,(%eax)
4074a6:	57                   	push   %edi
4074a7:	57                   	push   %edi
4074a8:	57                   	push   %edi
4074a9:	57                   	push   %edi
4074aa:	57                   	push   %edi
4074ab:	e8 41 d6 ff ff       	call   0x404af1
4074b0:	83 c4 14             	add    $0x14,%esp
4074b3:	83 c8 ff             	or     $0xffffffff,%eax
4074b6:	eb 53                	jmp    0x40750b
4074b8:	83 3d e4 0a 89 00 03 	cmpl   $0x3,0x890ae4
4074bf:	75 38                	jne    0x4074f9
4074c1:	6a 04                	push   $0x4
4074c3:	e8 43 d9 ff ff       	call   0x404e0b
4074c8:	59                   	pop    %ecx
4074c9:	89 7d fc             	mov    %edi,-0x4(%ebp)
4074cc:	53                   	push   %ebx
4074cd:	e8 33 e8 ff ff       	call   0x405d05
4074d2:	59                   	pop    %ecx
4074d3:	89 45 e0             	mov    %eax,-0x20(%ebp)
4074d6:	3b c7                	cmp    %edi,%eax
4074d8:	74 0b                	je     0x4074e5
4074da:	8b 73 fc             	mov    -0x4(%ebx),%esi
4074dd:	83 ee 09             	sub    $0x9,%esi
4074e0:	89 75 e4             	mov    %esi,-0x1c(%ebp)
4074e3:	eb 03                	jmp    0x4074e8
4074e5:	8b 75 e4             	mov    -0x1c(%ebp),%esi
4074e8:	c7 45 fc fe ff ff ff 	movl   $0xfffffffe,-0x4(%ebp)
4074ef:	e8 25 00 00 00       	call   0x407519
4074f4:	39 7d e0             	cmp    %edi,-0x20(%ebp)
4074f7:	75 10                	jne    0x407509
4074f9:	53                   	push   %ebx
4074fa:	57                   	push   %edi
4074fb:	ff 35 dc cd 45 00    	push   0x45cddc
407501:	ff 15 2c 11 40 00    	call   *0x40112c
407507:	8b f0                	mov    %eax,%esi
407509:	8b c6                	mov    %esi,%eax
40750b:	e8 a9 c7 ff ff       	call   0x403cb9
407510:	c3                   	ret
407511:	33 ff                	xor    %edi,%edi
407513:	8b 5d 08             	mov    0x8(%ebp),%ebx
407516:	8b 75 e4             	mov    -0x1c(%ebp),%esi
407519:	6a 04                	push   $0x4
40751b:	e8 11 d8 ff ff       	call   0x404d31
407520:	59                   	pop    %ecx
407521:	c3                   	ret
407522:	6a 02                	push   $0x2
407524:	e8 0e b5 ff ff       	call   0x402a37
407529:	59                   	pop    %ecx
40752a:	c3                   	ret
40752b:	6a 0c                	push   $0xc
40752d:	68 b8 a6 40 00       	push   $0x40a6b8
407532:	e8 3d c7 ff ff       	call   0x403c74
407537:	83 65 e4 00          	andl   $0x0,-0x1c(%ebp)
40753b:	8b 75 08             	mov    0x8(%ebp),%esi
40753e:	3b 35 cc 0a 89 00    	cmp    0x890acc,%esi
407544:	77 22                	ja     0x407568
407546:	6a 04                	push   $0x4
407548:	e8 be d8 ff ff       	call   0x404e0b
40754d:	59                   	pop    %ecx
40754e:	83 65 fc 00          	andl   $0x0,-0x4(%ebp)
407552:	56                   	push   %esi
407553:	e8 8c ef ff ff       	call   0x4064e4