40866f:	75 0d                	jne    0x40867e
408671:	89 78 08             	mov    %edi,0x8(%eax)
408674:	eb 08                	jmp    0x40867e
408676:	89 3a                	mov    %edi,(%edx)
408678:	3b 10                	cmp    (%eax),%edx
40867a:	75 02                	jne    0x40867e
40867c:	89 38                	mov    %edi,(%eax)
40867e:	8b 4f 04             	mov    0x4(%edi),%ecx
408681:	8b c7                	mov    %edi,%eax
408683:	80 79 0c 00          	cmpb   $0x0,0xc(%ecx)
408687:	0f 85 7d 01 00 00    	jne    0x40880a
40868d:	56                   	push   %esi
40868e:	8b ff                	mov    %edi,%edi
408690:	8b 50 04             	mov    0x4(%eax),%edx
408693:	8b 72 04             	mov    0x4(%edx),%esi
408696:	8b 0e                	mov    (%esi),%ecx
408698:	3b d1                	cmp    %ecx,%edx
40869a:	0f 85 aa 00 00 00    	jne    0x40874a
4086a0:	8b 4e 08             	mov    0x8(%esi),%ecx
4086a3:	80 79 0c 00          	cmpb   $0x0,0xc(%ecx)
4086a7:	0f 84 a3 00 00 00    	je     0x408750
4086ad:	8b 72 08             	mov    0x8(%edx),%esi
4086b0:	3b c6                	cmp    %esi,%eax
4086b2:	75 37                	jne    0x4086eb
4086b4:	8b 0e                	mov    (%esi),%ecx
4086b6:	8b c2                	mov    %edx,%eax
4086b8:	89 4a 08             	mov    %ecx,0x8(%edx)
4086bb:	8b 0e                	mov    (%esi),%ecx
4086bd:	80 79 0d 00          	cmpb   $0x0,0xd(%ecx)
4086c1:	75 03                	jne    0x4086c6
4086c3:	89 41 04             	mov    %eax,0x4(%ecx)
4086c6:	8b 4a 04             	mov    0x4(%edx),%ecx
4086c9:	89 4e 04             	mov    %ecx,0x4(%esi)
4086cc:	8b 0b                	mov    (%ebx),%ecx
4086ce:	3b 41 04             	cmp    0x4(%ecx),%eax
4086d1:	75 05                	jne    0x4086d8
4086d3:	89 71 04             	mov    %esi,0x4(%ecx)
4086d6:	eb 0e                	jmp    0x4086e6
4086d8:	8b 4a 04             	mov    0x4(%edx),%ecx
4086db:	3b 01                	cmp    (%ecx),%eax
4086dd:	75 04                	jne    0x4086e3
4086df:	89 31                	mov    %esi,(%ecx)
4086e1:	eb 03                	jmp    0x4086e6
4086e3:	89 71 08             	mov    %esi,0x8(%ecx)
4086e6:	89 06                	mov    %eax,(%esi)
4086e8:	89 70 04             	mov    %esi,0x4(%eax)
4086eb:	8b 48 04             	mov    0x4(%eax),%ecx
4086ee:	c6 41 0c 01          	movb   $0x1,0xc(%ecx)
4086f2:	8b 48 04             	mov    0x4(%eax),%ecx
4086f5:	8b 49 04             	mov    0x4(%ecx),%ecx
4086f8:	c6 41 0c 00          	movb   $0x0,0xc(%ecx)
4086fc:	8b 48 04             	mov    0x4(%eax),%ecx
4086ff:	8b 51 04             	mov    0x4(%ecx),%edx
408702:	8b 32                	mov    (%edx),%esi
408704:	8b 4e 08             	mov    0x8(%esi),%ecx
408707:	89 0a                	mov    %ecx,(%edx)
408709:	8b 4e 08             	mov    0x8(%esi),%ecx
40870c:	80 79 0d 00          	cmpb   $0x0,0xd(%ecx)
408710:	75 03                	jne    0x408715
408712:	89 51 04             	mov    %edx,0x4(%ecx)
408715:	8b 4a 04             	mov    0x4(%edx),%ecx
408718:	89 4e 04             	mov    %ecx,0x4(%esi)
40871b:	8b 0b                	mov    (%ebx),%ecx
40871d:	3b 51 04             	cmp    0x4(%ecx),%edx
408720:	75 0b                	jne    0x40872d
408722:	89 71 04             	mov    %esi,0x4(%ecx)
408725:	89 56 08             	mov    %edx,0x8(%esi)
408728:	e9 cc 00 00 00       	jmp    0x4087f9
40872d:	8b 4a 04             	mov    0x4(%edx),%ecx
408730:	3b 51 08             	cmp    0x8(%ecx),%edx
408733:	75 0b                	jne    0x408740
408735:	89 71 08             	mov    %esi,0x8(%ecx)
408738:	89 56 08             	mov    %edx,0x8(%esi)
40873b:	e9 b9 00 00 00       	jmp    0x4087f9
408740:	89 31                	mov    %esi,(%ecx)
408742:	89 56 08             	mov    %edx,0x8(%esi)
408745:	e9 af 00 00 00       	jmp    0x4087f9
40874a:	80 79 0c 00          	cmpb   $0x0,0xc(%ecx)
40874e:	75 1d                	jne    0x40876d
408750:	c6 42 0c 01          	movb   $0x1,0xc(%edx)
408754:	c6 41 0c 01          	movb   $0x1,0xc(%ecx)
408758:	8b 48 04             	mov    0x4(%eax),%ecx
40875b:	8b 49 04             	mov    0x4(%ecx),%ecx
40875e:	c6 41 0c 00          	movb   $0x0,0xc(%ecx)
408762:	8b 48 04             	mov    0x4(%eax),%ecx
408765:	8b 41 04             	mov    0x4(%ecx),%eax
408768:	e9 8f 00 00 00       	jmp    0x4087fc
40876d:	8b 32                	mov    (%edx),%esi
40876f:	3b c6                	cmp    %esi,%eax
408771:	75 3a                	jne    0x4087ad
408773:	8b 4e 08             	mov    0x8(%esi),%ecx
408776:	8b c2                	mov    %edx,%eax
408778:	89 08                	mov    %ecx,(%eax)
40877a:	8b 4e 08             	mov    0x8(%esi),%ecx
40877d:	80 79 0d 00          	cmpb   $0x0,0xd(%ecx)
408781:	75 03                	jne    0x408786
408783:	89 41 04             	mov    %eax,0x4(%ecx)
408786:	8b 4a 04             	mov    0x4(%edx),%ecx
408789:	89 4e 04             	mov    %ecx,0x4(%esi)
40878c:	8b 0b                	mov    (%ebx),%ecx
40878e:	3b 41 04             	cmp    0x4(%ecx),%eax
408791:	75 05                	jne    0x408798
408793:	89 71 04             	mov    %esi,0x4(%ecx)
408796:	eb 0f                	jmp    0x4087a7
408798:	8b 4a 04             	mov    0x4(%edx),%ecx
40879b:	3b 41 08             	cmp    0x8(%ecx),%eax
40879e:	75 05                	jne    0x4087a5
4087a0:	89 71 08             	mov    %esi,0x8(%ecx)
4087a3:	eb 02                	jmp    0x4087a7
4087a5:	89 31                	mov    %esi,(%ecx)
4087a7:	89 46 08             	mov    %eax,0x8(%esi)
4087aa:	89 70 04             	mov    %esi,0x4(%eax)
4087ad:	8b 48 04             	mov    0x4(%eax),%ecx
4087b0:	c6 41 0c 01          	movb   $0x1,0xc(%ecx)
4087b4:	8b 48 04             	mov    0x4(%eax),%ecx
4087b7:	8b 49 04             	mov    0x4(%ecx),%ecx
4087ba:	c6 41 0c 00          	movb   $0x0,0xc(%ecx)
4087be:	8b 48 04             	mov    0x4(%eax),%ecx
4087c1:	8b 51 04             	mov    0x4(%ecx),%edx
4087c4:	8b 72 08             	mov    0x8(%edx),%esi
4087c7:	8b 0e                	mov    (%esi),%ecx
4087c9:	89 4a 08             	mov    %ecx,0x8(%edx)
4087cc:	8b 0e                	mov    (%esi),%ecx
4087ce:	80 79 0d 00          	cmpb   $0x0,0xd(%ecx)
4087d2:	75 03                	jne    0x4087d7
4087d4:	89 51 04             	mov    %edx,0x4(%ecx)
4087d7:	8b 4a 04             	mov    0x4(%edx),%ecx
4087da:	89 4e 04             	mov    %ecx,0x4(%esi)
4087dd:	8b 0b                	mov    (%ebx),%ecx
4087df:	3b 51 04             	cmp    0x4(%ecx),%edx
4087e2:	75 05                	jne    0x4087e9
4087e4:	89 71 04             	mov    %esi,0x4(%ecx)
4087e7:	eb 0e                	jmp    0x4087f7
4087e9:	8b 4a 04             	mov    0x4(%edx),%ecx
4087ec:	3b 11                	cmp    (%ecx),%edx
4087ee:	75 04                	jne    0x4087f4
4087f0:	89 31                	mov    %esi,(%ecx)
4087f2:	eb 03                	jmp    0x4087f7
4087f4:	89 71 08             	mov    %esi,0x8(%ecx)
4087f7:	89 16                	mov    %edx,(%esi)
4087f9:	89 72 04             	mov    %esi,0x4(%edx)
4087fc:	8b 48 04             	mov    0x4(%eax),%ecx
4087ff:	80 79 0c 00          	cmpb   $0x0,0xc(%ecx)
408803:	0f 84 87 fe ff ff    	je     0x408690
408809:	5e                   	pop    %esi
40880a:	8b 45 fc             	mov    -0x4(%ebp),%eax
40880d:	8b 40 04             	mov    0x4(%eax),%eax
408810:	c6 40 0c 01          	movb   $0x1,0xc(%eax)
408814:	8b c7                	mov    %edi,%eax
408816:	5f                   	pop    %edi
408817:	5b                   	pop    %ebx
408818:	8b e5                	mov    %ebp,%esp
40881a:	5d                   	pop    %ebp
40881b:	c2 0c 00             	ret    $0xc
40881e:	cc                   	int3
40881f:	cc                   	int3
408820:	55                   	push   %ebp
408821:	8b ec                	mov    %esp,%ebp
408823:	83 ec 0c             	sub    $0xc,%esp
408826:	8d 4d f4             	lea    -0xc(%ebp),%ecx
408829:	e8 72 f2 ff ff       	call   0x407aa0
40882e:	68 8c a8 43 00       	push   $0x43a88c
408833:	8d 45 f4             	lea    -0xc(%ebp),%eax
408836:	50                   	push   %eax
408837:	e8 d1 2f 00 00       	call   0x40b80d
40883c:	cc                   	int3
40883d:	cc                   	int3
40883e:	cc                   	int3
40883f:	cc                   	int3
408840:	68 90 13 43 00       	push   $0x431390
408845:	e8 cf 10 00 00       	call   0x409919
40884a:	cc                   	int3
40884b:	cc                   	int3
40884c:	cc                   	int3
40884d:	cc                   	int3
40884e:	cc                   	int3
40884f:	cc                   	int3
408850:	68 a4 13 43 00       	push   $0x4313a4
408855:	e8 bf 10 00 00       	call   0x409919
40885a:	cc                   	int3
40885b:	cc                   	int3
40885c:	cc                   	int3
40885d:	cc                   	int3
40885e:	cc                   	int3
40885f:	cc                   	int3
408860:	68 f4 15 43 00       	push   $0x4315f4
408865:	e8 af 10 00 00       	call   0x409919
40886a:	cc                   	int3
40886b:	cc                   	int3
40886c:	cc                   	int3
40886d:	cc                   	int3
40886e:	cc                   	int3
40886f:	cc                   	int3
408870:	55                   	push   %ebp
408871:	8b ec                	mov    %esp,%ebp
408873:	83 ec 0c             	sub    $0xc,%esp
408876:	53                   	push   %ebx
408877:	56                   	push   %esi
408878:	8b f1                	mov    %ecx,%esi
40887a:	57                   	push   %edi
40887b:	8b 7d 0c             	mov    0xc(%ebp),%edi
40887e:	8b 5e 14             	mov    0x14(%esi),%ebx
408881:	8b c3                	mov    %ebx,%eax
408883:	8b 4e 10             	mov    0x10(%esi),%ecx
408886:	2b c1                	sub    %ecx,%eax
408888:	89 4d f8             	mov    %ecx,-0x8(%ebp)
40888b:	3b f8                	cmp    %eax,%edi
40888d:	77 42                	ja     0x4088d1
40888f:	89 75 0c             	mov    %esi,0xc(%ebp)
408892:	8d 04 39             	lea    (%ecx,%edi,1),%eax
408895:	89 45 f8             	mov    %eax,-0x8(%ebp)
408898:	8b d6                	mov    %esi,%edx
40889a:	89 46 10             	mov    %eax,0x10(%esi)
40889d:	83 fb 07             	cmp    $0x7,%ebx
4088a0:	76 05                	jbe    0x4088a7
4088a2:	8b 16                	mov    (%esi),%edx
4088a4:	89 55 0c             	mov    %edx,0xc(%ebp)
4088a7:	8d 04 3f             	lea    (%edi,%edi,1),%eax
4088aa:	50                   	push   %eax
4088ab:	ff 75 08             	push   0x8(%ebp)
4088ae:	8d 04 4a             	lea    (%edx,%ecx,2),%eax
4088b1:	50                   	push   %eax
4088b2:	e8 89 25 00 00       	call   0x40ae40
4088b7:	8b 45 0c             	mov    0xc(%ebp),%eax
4088ba:	83 c4 0c             	add    $0xc,%esp
4088bd:	8b 4d f8             	mov    -0x8(%ebp),%ecx
4088c0:	33 d2                	xor    %edx,%edx
4088c2:	5f                   	pop    %edi
4088c3:	66 89 14 48          	mov    %dx,(%eax,%ecx,2)
4088c7:	8b c6                	mov    %esi,%eax
4088c9:	5e                   	pop    %esi
4088ca:	5b                   	pop    %ebx
4088cb:	8b e5                	mov    %ebp,%esp
4088cd:	5d                   	pop    %ebp
4088ce:	c2 08 00             	ret    $0x8
4088d1:	ba fe ff ff 7f       	mov    $0x7ffffffe,%edx
4088d6:	8b c2                	mov    %edx,%eax
4088d8:	2b c1                	sub    %ecx,%eax
4088da:	3b c7                	cmp    %edi,%eax
4088dc:	0f 82 f7 00 00 00    	jb     0x4089d9
4088e2:	8d 04 39             	lea    (%ecx,%edi,1),%eax
4088e5:	8b c8                	mov    %eax,%ecx
4088e7:	89 45 fc             	mov    %eax,-0x4(%ebp)
4088ea:	83 c9 07             	or     $0x7,%ecx
4088ed:	3b ca                	cmp    %edx,%ecx
4088ef:	76 04                	jbe    0x4088f5
4088f1:	8b ca                	mov    %edx,%ecx
4088f3:	eb 18                	jmp    0x40890d
4088f5:	8b c3                	mov    %ebx,%eax
4088f7:	d1 e8                	shr    $1,%eax
4088f9:	2b d0                	sub    %eax,%edx
4088fb:	3b da                	cmp    %edx,%ebx
4088fd:	76 07                	jbe    0x408906
4088ff:	b9 fe ff ff 7f       	mov    $0x7ffffffe,%ecx
408904:	eb 07                	jmp    0x40890d
408906:	03 c3                	add    %ebx,%eax
408908:	3b c8                	cmp    %eax,%ecx
40890a:	0f 42 c8             	cmovb  %eax,%ecx
40890d:	8d 45 0c             	lea    0xc(%ebp),%eax
408910:	89 4d 0c             	mov    %ecx,0xc(%ebp)
408913:	50                   	push   %eax
408914:	56                   	push   %esi
408915:	e8 16 e4 ff ff       	call   0x406d30
40891a:	8b 4d fc             	mov    -0x4(%ebp),%ecx
40891d:	03 ff                	add    %edi,%edi
40891f:	89 4e 10             	mov    %ecx,0x10(%esi)
408922:	83 c4 08             	add    $0x8,%esp
408925:	8b 4d 0c             	mov    0xc(%ebp),%ecx
408928:	89 4e 14             	mov    %ecx,0x14(%esi)
40892b:	8b 4d f8             	mov    -0x8(%ebp),%ecx
40892e:	03 c9                	add    %ecx,%ecx
408930:	89 7d 0c             	mov    %edi,0xc(%ebp)
408933:	8b 7d fc             	mov    -0x4(%ebp),%edi
408936:	89 45 f4             	mov    %eax,-0xc(%ebp)
408939:	51                   	push   %ecx
40893a:	8d 14 01             	lea    (%ecx,%eax,1),%edx
40893d:	89 55 f8             	mov    %edx,-0x8(%ebp)
408940:	8d 14 78             	lea    (%eax,%edi,2),%edx
408943:	8b 7d 0c             	mov    0xc(%ebp),%edi
408946:	89 55 fc             	mov    %edx,-0x4(%ebp)
408949:	83 fb 07             	cmp    $0x7,%ebx
40894c:	76 5d                	jbe    0x4089ab
40894e:	8b 3e                	mov    (%esi),%edi
408950:	57                   	push   %edi
408951:	50                   	push   %eax
408952:	e8 e9 24 00 00       	call   0x40ae40
408957:	ff 75 0c             	push   0xc(%ebp)
40895a:	ff 75 08             	push   0x8(%ebp)
40895d:	ff 75 f8             	push   -0x8(%ebp)
408960:	e8 db 24 00 00       	call   0x40ae40
408965:	8b 45 fc             	mov    -0x4(%ebp),%eax
408968:	8d 1c 5d 02 00 00 00 	lea    0x2(,%ebx,2),%ebx
40896f:	33 c9                	xor    %ecx,%ecx
408971:	83 c4 18             	add    $0x18,%esp
408974:	66 89 08             	mov    %cx,(%eax)
408977:	81 fb 00 10 00 00    	cmp    $0x1000,%ebx
40897d:	72 12                	jb     0x408991
40897f:	8b 4f fc             	mov    -0x4(%edi),%ecx
408982:	83 c3 23             	add    $0x23,%ebx
408985:	2b f9                	sub    %ecx,%edi
408987:	8d 47 fc             	lea    -0x4(%edi),%eax
40898a:	83 f8 1f             	cmp    $0x1f,%eax
40898d:	77 4f                	ja     0x4089de
40898f:	8b f9                	mov    %ecx,%edi
408991:	53                   	push   %ebx
408992:	57                   	push   %edi
408993:	e8 58 e0 ff ff       	call   0x4069f0
408998:	8b 45 f4             	mov    -0xc(%ebp),%eax
40899b:	83 c4 08             	add    $0x8,%esp
40899e:	89 06                	mov    %eax,(%esi)
4089a0:	8b c6                	mov    %esi,%eax
4089a2:	5f                   	pop    %edi
4089a3:	5e                   	pop    %esi
4089a4:	5b                   	pop    %ebx
4089a5:	8b e5                	mov    %ebp,%esp
4089a7:	5d                   	pop    %ebp
4089a8:	c2 08 00             	ret    $0x8
4089ab:	56                   	push   %esi
4089ac:	50                   	push   %eax
4089ad:	e8 8e 24 00 00       	call   0x40ae40
4089b2:	57                   	push   %edi
4089b3:	ff 75 08             	push   0x8(%ebp)
4089b6:	ff 75 f8             	push   -0x8(%ebp)
4089b9:	e8 82 24 00 00       	call   0x40ae40
4089be:	8b 45 fc             	mov    -0x4(%ebp),%eax
4089c1:	83 c4 18             	add    $0x18,%esp
4089c4:	33 c9                	xor    %ecx,%ecx
4089c6:	66 89 08             	mov    %cx,(%eax)
4089c9:	8b 45 f4             	mov    -0xc(%ebp),%eax
4089cc:	89 06                	mov    %eax,(%esi)
4089ce:	8b c6                	mov    %esi,%eax
4089d0:	5f                   	pop    %edi
4089d1:	5e                   	pop    %esi
4089d2:	5b                   	pop    %ebx
4089d3:	8b e5                	mov    %ebp,%esp
4089d5:	5d                   	pop    %ebp
4089d6:	c2 08 00             	ret    $0x8
4089d9:	e8 72 fe ff ff       	call   0x408850
4089de:	e8 1b 4a 00 00       	call   0x40d3fe
4089e3:	cc                   	int3
4089e4:	cc                   	int3
4089e5:	cc                   	int3
4089e6:	cc                   	int3
4089e7:	cc                   	int3
4089e8:	cc                   	int3
4089e9:	cc                   	int3
4089ea:	cc                   	int3
4089eb:	cc                   	int3
4089ec:	cc                   	int3
4089ed:	cc                   	int3