40a3a6:	8b 75 f4             	mov    -0xc(%ebp),%esi
40a3a9:	8b 0e                	mov    (%esi),%ecx
40a3ab:	8d 79 01             	lea    0x1(%ecx),%edi
40a3ae:	89 3e                	mov    %edi,(%esi)
40a3b0:	85 c9                	test   %ecx,%ecx
40a3b2:	75 1a                	jne    0x40a3ce
40a3b4:	3b 1d 60 09 43 00    	cmp    0x430960,%ebx
40a3ba:	75 12                	jne    0x40a3ce
40a3bc:	8b 4d fc             	mov    -0x4(%ebp),%ecx
40a3bf:	3b 0d 9c 23 c7 00    	cmp    0xc7239c,%ecx
40a3c5:	75 07                	jne    0x40a3ce
40a3c7:	83 25 60 09 43 00 00 	andl   $0x0,0x430960
40a3ce:	8b 4d fc             	mov    -0x4(%ebp),%ecx
40a3d1:	89 08                	mov    %ecx,(%eax)
40a3d3:	8d 42 04             	lea    0x4(%edx),%eax
40a3d6:	5f                   	pop    %edi
40a3d7:	5e                   	pop    %esi
40a3d8:	5b                   	pop    %ebx
40a3d9:	c9                   	leave
40a3da:	c3                   	ret
40a3db:	cc                   	int3
40a3dc:	68 40 a4 40 00       	push   $0x40a440
40a3e1:	64 ff 35 00 00 00 00 	push   %fs:0x0
40a3e8:	8b 44 24 10          	mov    0x10(%esp),%eax
40a3ec:	89 6c 24 10          	mov    %ebp,0x10(%esp)
40a3f0:	8d 6c 24 10          	lea    0x10(%esp),%ebp
40a3f4:	2b e0                	sub    %eax,%esp
40a3f6:	53                   	push   %ebx
40a3f7:	56                   	push   %esi
40a3f8:	57                   	push   %edi
40a3f9:	a1 68 b2 42 00       	mov    0x42b268,%eax
40a3fe:	31 45 fc             	xor    %eax,-0x4(%ebp)
40a401:	33 c5                	xor    %ebp,%eax
40a403:	50                   	push   %eax
40a404:	89 65 e8             	mov    %esp,-0x18(%ebp)
40a407:	ff 75 f8             	push   -0x8(%ebp)
40a40a:	8b 45 fc             	mov    -0x4(%ebp),%eax
40a40d:	c7 45 fc fe ff ff ff 	movl   $0xfffffffe,-0x4(%ebp)
40a414:	89 45 f8             	mov    %eax,-0x8(%ebp)
40a417:	8d 45 f0             	lea    -0x10(%ebp),%eax
40a41a:	64 a3 00 00 00 00    	mov    %eax,%fs:0x0
40a420:	c3                   	ret
40a421:	8b 4d f0             	mov    -0x10(%ebp),%ecx
40a424:	64 89 0d 00 00 00 00 	mov    %ecx,%fs:0x0
40a42b:	59                   	pop    %ecx
40a42c:	5f                   	pop    %edi
40a42d:	5f                   	pop    %edi
40a42e:	5e                   	pop    %esi
40a42f:	5b                   	pop    %ebx
40a430:	8b e5                	mov    %ebp,%esp
40a432:	5d                   	pop    %ebp
40a433:	51                   	push   %ecx
40a434:	c3                   	ret
40a435:	cc                   	int3
40a436:	cc                   	int3
40a437:	cc                   	int3
40a438:	cc                   	int3
40a439:	cc                   	int3
40a43a:	cc                   	int3
40a43b:	cc                   	int3
40a43c:	cc                   	int3
40a43d:	cc                   	int3
40a43e:	cc                   	int3
40a43f:	cc                   	int3
40a440:	8b ff                	mov    %edi,%edi
40a442:	55                   	push   %ebp
40a443:	8b ec                	mov    %esp,%ebp
40a445:	83 ec 18             	sub    $0x18,%esp
40a448:	53                   	push   %ebx
40a449:	8b 5d 0c             	mov    0xc(%ebp),%ebx
40a44c:	56                   	push   %esi
40a44d:	8b 73 08             	mov    0x8(%ebx),%esi
40a450:	33 35 68 b2 42 00    	xor    0x42b268,%esi
40a456:	57                   	push   %edi
40a457:	8b 06                	mov    (%esi),%eax
40a459:	c6 45 ff 00          	movb   $0x0,-0x1(%ebp)
40a45d:	c7 45 f4 01 00 00 00 	movl   $0x1,-0xc(%ebp)
40a464:	8d 7b 10             	lea    0x10(%ebx),%edi
40a467:	83 f8 fe             	cmp    $0xfffffffe,%eax
40a46a:	74 0d                	je     0x40a479
40a46c:	8b 4e 04             	mov    0x4(%esi),%ecx
40a46f:	03 cf                	add    %edi,%ecx
40a471:	33 0c 38             	xor    (%eax,%edi,1),%ecx
40a474:	e8 ad c1 ff ff       	call   0x406626
40a479:	8b 4e 0c             	mov    0xc(%esi),%ecx
40a47c:	8b 46 08             	mov    0x8(%esi),%eax
40a47f:	03 cf                	add    %edi,%ecx
40a481:	33 0c 38             	xor    (%eax,%edi,1),%ecx
40a484:	e8 9d c1 ff ff       	call   0x406626
40a489:	8b 45 08             	mov    0x8(%ebp),%eax
40a48c:	f6 40 04 66          	testb  $0x66,0x4(%eax)
40a490:	0f 85 16 01 00 00    	jne    0x40a5ac
40a496:	8b 4d 10             	mov    0x10(%ebp),%ecx
40a499:	8d 55 e8             	lea    -0x18(%ebp),%edx
40a49c:	89 53 fc             	mov    %edx,-0x4(%ebx)
40a49f:	8b 5b 0c             	mov    0xc(%ebx),%ebx
40a4a2:	89 45 e8             	mov    %eax,-0x18(%ebp)
40a4a5:	89 4d ec             	mov    %ecx,-0x14(%ebp)
40a4a8:	83 fb fe             	cmp    $0xfffffffe,%ebx
40a4ab:	74 5f                	je     0x40a50c
40a4ad:	8d 49 00             	lea    0x0(%ecx),%ecx
40a4b0:	8d 04 5b             	lea    (%ebx,%ebx,2),%eax
40a4b3:	8b 4c 86 14          	mov    0x14(%esi,%eax,4),%ecx
40a4b7:	8d 44 86 10          	lea    0x10(%esi,%eax,4),%eax
40a4bb:	89 45 f0             	mov    %eax,-0x10(%ebp)
40a4be:	8b 00                	mov    (%eax),%eax
40a4c0:	89 45 f8             	mov    %eax,-0x8(%ebp)
40a4c3:	85 c9                	test   %ecx,%ecx
40a4c5:	74 14                	je     0x40a4db
40a4c7:	8b d7                	mov    %edi,%edx
40a4c9:	e8 f4 0e 00 00       	call   0x40b3c2
40a4ce:	c6 45 ff 01          	movb   $0x1,-0x1(%ebp)
40a4d2:	85 c0                	test   %eax,%eax
40a4d4:	7c 40                	jl     0x40a516
40a4d6:	7f 47                	jg     0x40a51f
40a4d8:	8b 45 f8             	mov    -0x8(%ebp),%eax
40a4db:	8b d8                	mov    %eax,%ebx
40a4dd:	83 f8 fe             	cmp    $0xfffffffe,%eax
40a4e0:	75 ce                	jne    0x40a4b0
40a4e2:	80 7d ff 00          	cmpb   $0x0,-0x1(%ebp)
40a4e6:	74 24                	je     0x40a50c
40a4e8:	8b 06                	mov    (%esi),%eax
40a4ea:	83 f8 fe             	cmp    $0xfffffffe,%eax
40a4ed:	74 0d                	je     0x40a4fc
40a4ef:	8b 4e 04             	mov    0x4(%esi),%ecx
40a4f2:	03 cf                	add    %edi,%ecx
40a4f4:	33 0c 38             	xor    (%eax,%edi,1),%ecx
40a4f7:	e8 2a c1 ff ff       	call   0x406626
40a4fc:	8b 4e 0c             	mov    0xc(%esi),%ecx
40a4ff:	8b 56 08             	mov    0x8(%esi),%edx
40a502:	03 cf                	add    %edi,%ecx
40a504:	33 0c 3a             	xor    (%edx,%edi,1),%ecx
40a507:	e8 1a c1 ff ff       	call   0x406626
40a50c:	8b 45 f4             	mov    -0xc(%ebp),%eax
40a50f:	5f                   	pop    %edi
40a510:	5e                   	pop    %esi
40a511:	5b                   	pop    %ebx
40a512:	8b e5                	mov    %ebp,%esp
40a514:	5d                   	pop    %ebp
40a515:	c3                   	ret
40a516:	c7 45 f4 00 00 00 00 	movl   $0x0,-0xc(%ebp)
40a51d:	eb c9                	jmp    0x40a4e8
40a51f:	8b 4d 08             	mov    0x8(%ebp),%ecx
40a522:	81 39 63 73 6d e0    	cmpl   $0xe06d7363,(%ecx)
40a528:	75 29                	jne    0x40a553
40a52a:	83 3d d8 cb 41 00 00 	cmpl   $0x0,0x41cbd8
40a531:	74 20                	je     0x40a553
40a533:	68 d8 cb 41 00       	push   $0x41cbd8
40a538:	e8 13 8c 00 00       	call   0x413150
40a53d:	83 c4 04             	add    $0x4,%esp
40a540:	85 c0                	test   %eax,%eax
40a542:	74 0f                	je     0x40a553
40a544:	8b 55 08             	mov    0x8(%ebp),%edx
40a547:	6a 01                	push   $0x1
40a549:	52                   	push   %edx
40a54a:	ff 15 d8 cb 41 00    	call   *0x41cbd8
40a550:	83 c4 08             	add    $0x8,%esp
40a553:	8b 4d 0c             	mov    0xc(%ebp),%ecx
40a556:	e8 97 0e 00 00       	call   0x40b3f2
40a55b:	8b 45 0c             	mov    0xc(%ebp),%eax
40a55e:	39 58 0c             	cmp    %ebx,0xc(%eax)
40a561:	74 12                	je     0x40a575
40a563:	68 68 b2 42 00       	push   $0x42b268
40a568:	57                   	push   %edi
40a569:	8b d3                	mov    %ebx,%edx
40a56b:	8b c8                	mov    %eax,%ecx
40a56d:	e8 9a 0e 00 00       	call   0x40b40c
40a572:	8b 45 0c             	mov    0xc(%ebp),%eax
40a575:	8b 4d f8             	mov    -0x8(%ebp),%ecx
40a578:	89 48 0c             	mov    %ecx,0xc(%eax)
40a57b:	8b 06                	mov    (%esi),%eax
40a57d:	83 f8 fe             	cmp    $0xfffffffe,%eax
40a580:	74 0d                	je     0x40a58f
40a582:	8b 4e 04             	mov    0x4(%esi),%ecx
40a585:	03 cf                	add    %edi,%ecx
40a587:	33 0c 38             	xor    (%eax,%edi,1),%ecx
40a58a:	e8 97 c0 ff ff       	call   0x406626
40a58f:	8b 4e 0c             	mov    0xc(%esi),%ecx
40a592:	8b 56 08             	mov    0x8(%esi),%edx
40a595:	03 cf                	add    %edi,%ecx
40a597:	33 0c 3a             	xor    (%edx,%edi,1),%ecx
40a59a:	e8 87 c0 ff ff       	call   0x406626
40a59f:	8b 45 f0             	mov    -0x10(%ebp),%eax
40a5a2:	8b 48 08             	mov    0x8(%eax),%ecx
40a5a5:	8b d7                	mov    %edi,%edx
40a5a7:	e8 2d 0e 00 00       	call   0x40b3d9
40a5ac:	ba fe ff ff ff       	mov    $0xfffffffe,%edx
40a5b1:	39 53 0c             	cmp    %edx,0xc(%ebx)
40a5b4:	0f 84 52 ff ff ff    	je     0x40a50c
40a5ba:	68 68 b2 42 00       	push   $0x42b268
40a5bf:	57                   	push   %edi
40a5c0:	8b cb                	mov    %ebx,%ecx
40a5c2:	e8 45 0e 00 00       	call   0x40b40c
40a5c7:	e9 1c ff ff ff       	jmp    0x40a4e8
40a5cc:	6a 0c                	push   $0xc
40a5ce:	68 78 96 42 00       	push   $0x429678
40a5d3:	e8 04 fe ff ff       	call   0x40a3dc
40a5d8:	8b 4d 08             	mov    0x8(%ebp),%ecx
40a5db:	33 ff                	xor    %edi,%edi
40a5dd:	3b cf                	cmp    %edi,%ecx
40a5df:	76 2e                	jbe    0x40a60f
40a5e1:	6a e0                	push   $0xffffffe0
40a5e3:	58                   	pop    %eax
40a5e4:	33 d2                	xor    %edx,%edx
40a5e6:	f7 f1                	div    %ecx
40a5e8:	3b 45 0c             	cmp    0xc(%ebp),%eax
40a5eb:	1b c0                	sbb    %eax,%eax
40a5ed:	40                   	inc    %eax
40a5ee:	75 1f                	jne    0x40a60f
40a5f0:	e8 e0 b4 ff ff       	call   0x405ad5
40a5f5:	c7 00 0c 00 00 00    	movl   $0xc,(%eax)
40a5fb:	57                   	push   %edi
40a5fc:	57                   	push   %edi
40a5fd:	57                   	push   %edi
40a5fe:	57                   	push   %edi
40a5ff:	57                   	push   %edi
40a600:	e8 20 ac ff ff       	call   0x405225
40a605:	83 c4 14             	add    $0x14,%esp
40a608:	33 c0                	xor    %eax,%eax
40a60a:	e9 d5 00 00 00       	jmp    0x40a6e4
40a60f:	0f af 4d 0c          	imul   0xc(%ebp),%ecx
40a613:	8b f1                	mov    %ecx,%esi
40a615:	89 75 08             	mov    %esi,0x8(%ebp)
40a618:	3b f7                	cmp    %edi,%esi
40a61a:	75 03                	jne    0x40a61f
40a61c:	33 f6                	xor    %esi,%esi
40a61e:	46                   	inc    %esi
40a61f:	33 db                	xor    %ebx,%ebx
40a621:	89 5d e4             	mov    %ebx,-0x1c(%ebp)
40a624:	83 fe e0             	cmp    $0xffffffe0,%esi
40a627:	77 69                	ja     0x40a692
40a629:	83 3d a0 23 c7 00 03 	cmpl   $0x3,0xc723a0
40a630:	75 4b                	jne    0x40a67d
40a632:	83 c6 0f             	add    $0xf,%esi
40a635:	83 e6 f0             	and    $0xfffffff0,%esi
40a638:	89 75 0c             	mov    %esi,0xc(%ebp)
40a63b:	8b 45 08             	mov    0x8(%ebp),%eax
40a63e:	3b 05 90 23 c7 00    	cmp    0xc72390,%eax
40a644:	77 37                	ja     0x40a67d
40a646:	6a 04                	push   $0x4
40a648:	e8 97 f2 ff ff       	call   0x4098e4
40a64d:	59                   	pop    %ecx
40a64e:	89 7d fc             	mov    %edi,-0x4(%ebp)
40a651:	ff 75 08             	push   0x8(%ebp)
40a654:	e8 9d fa ff ff       	call   0x40a0f6
40a659:	59                   	pop    %ecx
40a65a:	89 45 e4             	mov    %eax,-0x1c(%ebp)
40a65d:	c7 45 fc fe ff ff ff 	movl   $0xfffffffe,-0x4(%ebp)
40a664:	e8 5f 00 00 00       	call   0x40a6c8
40a669:	8b 5d e4             	mov    -0x1c(%ebp),%ebx
40a66c:	3b df                	cmp    %edi,%ebx
40a66e:	74 11                	je     0x40a681
40a670:	ff 75 08             	push   0x8(%ebp)
40a673:	57                   	push   %edi
40a674:	53                   	push   %ebx
40a675:	e8 86 00 00 00       	call   0x40a700
40a67a:	83 c4 0c             	add    $0xc,%esp
40a67d:	3b df                	cmp    %edi,%ebx
40a67f:	75 61                	jne    0x40a6e2
40a681:	56                   	push   %esi
40a682:	6a 08                	push   $0x8
40a684:	ff 35 08 08 43 00    	push   0x430808
40a68a:	ff 15 d4 a0 41 00    	call   *0x41a0d4
40a690:	8b d8                	mov    %eax,%ebx
40a692:	3b df                	cmp    %edi,%ebx
40a694:	75 4c                	jne    0x40a6e2
40a696:	39 3d 78 11 43 00    	cmp    %edi,0x431178
40a69c:	74 33                	je     0x40a6d1
40a69e:	56                   	push   %esi
40a69f:	e8 50 1f 00 00       	call   0x40c5f4
40a6a4:	59                   	pop    %ecx
40a6a5:	85 c0                	test   %eax,%eax
40a6a7:	0f 85 72 ff ff ff    	jne    0x40a61f
40a6ad:	8b 45 10             	mov    0x10(%ebp),%eax
40a6b0:	3b c7                	cmp    %edi,%eax
40a6b2:	0f 84 50 ff ff ff    	je     0x40a608
40a6b8:	c7 00 0c 00 00 00    	movl   $0xc,(%eax)
40a6be:	e9 45 ff ff ff       	jmp    0x40a608
40a6c3:	33 ff                	xor    %edi,%edi
40a6c5:	8b 75 0c             	mov    0xc(%ebp),%esi
40a6c8:	6a 04                	push   $0x4
40a6ca:	e8 3b f1 ff ff       	call   0x40980a
40a6cf:	59                   	pop    %ecx
40a6d0:	c3                   	ret
40a6d1:	3b df                	cmp    %edi,%ebx
40a6d3:	75 0d                	jne    0x40a6e2
40a6d5:	8b 45 10             	mov    0x10(%ebp),%eax
40a6d8:	3b c7                	cmp    %edi,%eax
40a6da:	74 06                	je     0x40a6e2
40a6dc:	c7 00 0c 00 00 00    	movl   $0xc,(%eax)
40a6e2:	8b c3                	mov    %ebx,%eax
40a6e4:	e8 38 fd ff ff       	call   0x40a421
40a6e9:	c3                   	ret
40a6ea:	83 25 84 23 c7 00 00 	andl   $0x0,0xc72384
40a6f1:	c3                   	ret
40a6f2:	cc                   	int3
40a6f3:	cc                   	int3
40a6f4:	cc                   	int3
40a6f5:	cc                   	int3
40a6f6:	cc                   	int3
40a6f7:	cc                   	int3
40a6f8:	cc                   	int3
40a6f9:	cc                   	int3
40a6fa:	cc                   	int3
40a6fb:	cc                   	int3
40a6fc:	cc                   	int3
40a6fd:	cc                   	int3
40a6fe:	cc                   	int3
40a6ff:	cc                   	int3
40a700:	8b 54 24 0c          	mov    0xc(%esp),%edx
40a704:	8b 4c 24 04          	mov    0x4(%esp),%ecx
40a708:	85 d2                	test   %edx,%edx
40a70a:	74 69                	je     0x40a775
40a70c:	33 c0                	xor    %eax,%eax
40a70e:	8a 44 24 08          	mov    0x8(%esp),%al
40a712:	84 c0                	test   %al,%al
40a714:	75 16                	jne    0x40a72c
40a716:	81 fa 00 01 00 00    	cmp    $0x100,%edx
40a71c:	72 0e                	jb     0x40a72c
40a71e:	83 3d 64 13 c7 00 00 	cmpl   $0x0,0xc71364
40a725:	74 05                	je     0x40a72c
40a727:	e9 38 8b 00 00       	jmp    0x413264
40a72c:	57                   	push   %edi
40a72d:	8b f9                	mov    %ecx,%edi
40a72f:	83 fa 04             	cmp    $0x4,%edx
40a732:	72 31                	jb     0x40a765
40a734:	f7 d9                	neg    %ecx
40a736:	83 e1 03             	and    $0x3,%ecx
40a739:	74 0c                	je     0x40a747
40a73b:	2b d1                	sub    %ecx,%edx
40a73d:	88 07                	mov    %al,(%edi)
40a73f:	83 c7 01             	add    $0x1,%edi
40a742:	83 e9 01             	sub    $0x1,%ecx
40a745:	75 f6                	jne    0x40a73d
40a747:	8b c8                	mov    %eax,%ecx
40a749:	c1 e0 08             	shl    $0x8,%eax
40a74c:	03 c1                	add    %ecx,%eax
40a74e:	8b c8                	mov    %eax,%ecx
40a750:	c1 e0 10             	shl    $0x10,%eax
40a753:	03 c1                	add    %ecx,%eax
40a755:	8b ca                	mov    %edx,%ecx
40a757:	83 e2 03             	and    $0x3,%edx
40a75a:	c1 e9 02             	shr    $0x2,%ecx
40a75d:	74 06                	je     0x40a765
40a75f:	f3 ab                	rep stos %eax,%es:(%edi)
40a761:	85 d2                	test   %edx,%edx
40a763:	74 0a                	je     0x40a76f
40a765:	88 07                	mov    %al,(%edi)
40a767:	83 c7 01             	add    $0x1,%edi
40a76a:	83 ea 01             	sub    $0x1,%edx