4066f0:	8b d3                	mov    %ebx,%edx
4066f2:	89 4d fc             	mov    %ecx,-0x4(%ebp)
4066f5:	89 55 ec             	mov    %edx,-0x14(%ebp)
4066f8:	57                   	push   %edi
4066f9:	8b 7d 0c             	mov    0xc(%ebp),%edi
4066fc:	8b c7                	mov    %edi,%eax
4066fe:	89 45 f0             	mov    %eax,-0x10(%ebp)
406701:	85 db                	test   %ebx,%ebx
406703:	0f 8c af 00 00 00    	jl     0x4067b8
406709:	7f 08                	jg     0x406713
40670b:	85 ff                	test   %edi,%edi
40670d:	0f 84 a5 00 00 00    	je     0x4067b8
406713:	56                   	push   %esi
406714:	8b 41 1c             	mov    0x1c(%ecx),%eax
406717:	8b 00                	mov    (%eax),%eax
406719:	89 45 f4             	mov    %eax,-0xc(%ebp)
40671c:	85 c0                	test   %eax,%eax
40671e:	74 07                	je     0x406727
406720:	8b 41 2c             	mov    0x2c(%ecx),%eax
406723:	8b 00                	mov    (%eax),%eax
406725:	eb 02                	jmp    0x406729
406727:	33 c0                	xor    %eax,%eax
406729:	99                   	cltd
40672a:	8b f0                	mov    %eax,%esi
40672c:	8b c2                	mov    %edx,%eax
40672e:	89 45 f8             	mov    %eax,-0x8(%ebp)
406731:	85 c0                	test   %eax,%eax
406733:	7c 3b                	jl     0x406770
406735:	7f 04                	jg     0x40673b
406737:	85 f6                	test   %esi,%esi
406739:	74 35                	je     0x406770
40673b:	3b d8                	cmp    %eax,%ebx
40673d:	7f 0b                	jg     0x40674a
40673f:	7c 04                	jl     0x406745
406741:	3b fe                	cmp    %esi,%edi
406743:	73 05                	jae    0x40674a
406745:	8b f7                	mov    %edi,%esi
406747:	89 5d f8             	mov    %ebx,-0x8(%ebp)
40674a:	56                   	push   %esi
40674b:	ff 75 f4             	push   -0xc(%ebp)
40674e:	ff 75 08             	push   0x8(%ebp)
406751:	e8 1a 22 00 00       	call   0x408970
406756:	8b 4d fc             	mov    -0x4(%ebp),%ecx
406759:	83 c4 0c             	add    $0xc,%esp
40675c:	2b fe                	sub    %esi,%edi
40675e:	1b 5d f8             	sbb    -0x8(%ebp),%ebx
406761:	8b 41 2c             	mov    0x2c(%ecx),%eax
406764:	29 30                	sub    %esi,(%eax)
406766:	8b 41 1c             	mov    0x1c(%ecx),%eax
406769:	01 30                	add    %esi,(%eax)
40676b:	8b 45 08             	mov    0x8(%ebp),%eax
40676e:	eb 2a                	jmp    0x40679a
406770:	8b 01                	mov    (%ecx),%eax
406772:	8b 70 1c             	mov    0x1c(%eax),%esi
406775:	8b ce                	mov    %esi,%ecx
406777:	ff 15 54 41 42 00    	call   *0x424154
40677d:	8b 4d fc             	mov    -0x4(%ebp),%ecx
406780:	ff d6                	call   *%esi
406782:	8b c8                	mov    %eax,%ecx
406784:	83 f9 ff             	cmp    $0xffffffff,%ecx
406787:	74 28                	je     0x4067b1
406789:	8b 45 08             	mov    0x8(%ebp),%eax
40678c:	83 c7 ff             	add    $0xffffffff,%edi
40678f:	83 d3 ff             	adc    $0xffffffff,%ebx
406792:	33 f6                	xor    %esi,%esi
406794:	46                   	inc    %esi
406795:	88 08                	mov    %cl,(%eax)
406797:	8b 4d fc             	mov    -0x4(%ebp),%ecx
40679a:	03 c6                	add    %esi,%eax
40679c:	89 45 08             	mov    %eax,0x8(%ebp)
40679f:	85 db                	test   %ebx,%ebx
4067a1:	0f 8f 6d ff ff ff    	jg     0x406714
4067a7:	7c 08                	jl     0x4067b1
4067a9:	85 ff                	test   %edi,%edi
4067ab:	0f 85 63 ff ff ff    	jne    0x406714
4067b1:	8b 45 f0             	mov    -0x10(%ebp),%eax
4067b4:	8b 55 ec             	mov    -0x14(%ebp),%edx
4067b7:	5e                   	pop    %esi
4067b8:	2b c7                	sub    %edi,%eax
4067ba:	5f                   	pop    %edi
4067bb:	1b d3                	sbb    %ebx,%edx
4067bd:	5b                   	pop    %ebx
4067be:	c9                   	leave
4067bf:	c2 0c 00             	ret    $0xc
4067c2:	55                   	push   %ebp
4067c3:	8b ec                	mov    %esp,%ebp
4067c5:	83 ec 14             	sub    $0x14,%esp
4067c8:	53                   	push   %ebx
4067c9:	8b d9                	mov    %ecx,%ebx
4067cb:	83 7b 38 00          	cmpl   $0x0,0x38(%ebx)
4067cf:	74 13                	je     0x4067e4
4067d1:	ff 75 10             	push   0x10(%ebp)
4067d4:	ff 75 0c             	push   0xc(%ebp)
4067d7:	ff 75 08             	push   0x8(%ebp)
4067da:	e8 b7 00 00 00       	call   0x406896
4067df:	e9 ad 00 00 00       	jmp    0x406891
4067e4:	8b 43 20             	mov    0x20(%ebx),%eax
4067e7:	56                   	push   %esi
4067e8:	8b 75 0c             	mov    0xc(%ebp),%esi
4067eb:	57                   	push   %edi
4067ec:	8b 00                	mov    (%eax),%eax
4067ee:	8b 7d 10             	mov    0x10(%ebp),%edi
4067f1:	89 75 f0             	mov    %esi,-0x10(%ebp)
4067f4:	89 7d ec             	mov    %edi,-0x14(%ebp)
4067f7:	89 45 f4             	mov    %eax,-0xc(%ebp)
4067fa:	85 c0                	test   %eax,%eax
4067fc:	74 07                	je     0x406805
4067fe:	8b 43 30             	mov    0x30(%ebx),%eax
406801:	8b 00                	mov    (%eax),%eax
406803:	eb 02                	jmp    0x406807
406805:	33 c0                	xor    %eax,%eax
406807:	99                   	cltd
406808:	89 45 fc             	mov    %eax,-0x4(%ebp)
40680b:	8b ca                	mov    %edx,%ecx
40680d:	89 4d f8             	mov    %ecx,-0x8(%ebp)
406810:	85 ff                	test   %edi,%edi
406812:	7c 71                	jl     0x406885
406814:	7f 04                	jg     0x40681a
406816:	85 f6                	test   %esi,%esi
406818:	74 6b                	je     0x406885
40681a:	85 c9                	test   %ecx,%ecx
40681c:	7c 4a                	jl     0x406868
40681e:	7f 04                	jg     0x406824
406820:	85 c0                	test   %eax,%eax
406822:	74 44                	je     0x406868
406824:	3b f9                	cmp    %ecx,%edi
406826:	7f 0e                	jg     0x406836
406828:	7c 04                	jl     0x40682e
40682a:	3b f0                	cmp    %eax,%esi
40682c:	73 08                	jae    0x406836
40682e:	8b c6                	mov    %esi,%eax
406830:	89 75 fc             	mov    %esi,-0x4(%ebp)
406833:	89 7d f8             	mov    %edi,-0x8(%ebp)
406836:	50                   	push   %eax
406837:	ff 75 08             	push   0x8(%ebp)
40683a:	ff 75 f4             	push   -0xc(%ebp)
40683d:	e8 2e 21 00 00       	call   0x408970
406842:	8b 4d fc             	mov    -0x4(%ebp),%ecx
406845:	83 c4 0c             	add    $0xc,%esp
406848:	8b 43 30             	mov    0x30(%ebx),%eax
40684b:	2b f1                	sub    %ecx,%esi
40684d:	1b 7d f8             	sbb    -0x8(%ebp),%edi
406850:	29 08                	sub    %ecx,(%eax)
406852:	8b 43 20             	mov    0x20(%ebx),%eax
406855:	01 08                	add    %ecx,(%eax)
406857:	8b 45 08             	mov    0x8(%ebp),%eax
40685a:	03 c1                	add    %ecx,%eax
40685c:	85 ff                	test   %edi,%edi
40685e:	7c 25                	jl     0x406885
406860:	7f 09                	jg     0x40686b
406862:	85 f6                	test   %esi,%esi
406864:	74 1f                	je     0x406885
406866:	eb 03                	jmp    0x40686b
406868:	8b 45 08             	mov    0x8(%ebp),%eax
40686b:	83 7b 4c 00          	cmpl   $0x0,0x4c(%ebx)
40686f:	74 14                	je     0x406885
406871:	ff 73 4c             	push   0x4c(%ebx)
406874:	56                   	push   %esi
406875:	6a 01                	push   $0x1
406877:	50                   	push   %eax
406878:	e8 83 78 00 00       	call   0x40e100
40687d:	83 c4 10             	add    $0x10,%esp
406880:	2b f0                	sub    %eax,%esi
406882:	83 df 00             	sbb    $0x0,%edi
406885:	8b 45 f0             	mov    -0x10(%ebp),%eax
406888:	8b 55 ec             	mov    -0x14(%ebp),%edx
40688b:	2b c6                	sub    %esi,%eax
40688d:	1b d7                	sbb    %edi,%edx
40688f:	5f                   	pop    %edi
406890:	5e                   	pop    %esi
406891:	5b                   	pop    %ebx
406892:	c9                   	leave
406893:	c2 0c 00             	ret    $0xc
406896:	55                   	push   %ebp
406897:	8b ec                	mov    %esp,%ebp
406899:	83 ec 14             	sub    $0x14,%esp
40689c:	53                   	push   %ebx
40689d:	8b 5d 10             	mov    0x10(%ebp),%ebx
4068a0:	8b d3                	mov    %ebx,%edx
4068a2:	89 4d fc             	mov    %ecx,-0x4(%ebp)
4068a5:	89 55 ec             	mov    %edx,-0x14(%ebp)
4068a8:	57                   	push   %edi
4068a9:	8b 7d 0c             	mov    0xc(%ebp),%edi
4068ac:	8b c7                	mov    %edi,%eax
4068ae:	89 45 f0             	mov    %eax,-0x10(%ebp)
4068b1:	85 db                	test   %ebx,%ebx
4068b3:	0f 8c ab 00 00 00    	jl     0x406964
4068b9:	7f 08                	jg     0x4068c3
4068bb:	85 ff                	test   %edi,%edi
4068bd:	0f 84 a1 00 00 00    	je     0x406964
4068c3:	56                   	push   %esi
4068c4:	8b 41 20             	mov    0x20(%ecx),%eax
4068c7:	8b 00                	mov    (%eax),%eax
4068c9:	89 45 f4             	mov    %eax,-0xc(%ebp)
4068cc:	85 c0                	test   %eax,%eax
4068ce:	74 07                	je     0x4068d7
4068d0:	8b 41 30             	mov    0x30(%ecx),%eax
4068d3:	8b 00                	mov    (%eax),%eax
4068d5:	eb 02                	jmp    0x4068d9
4068d7:	33 c0                	xor    %eax,%eax
4068d9:	99                   	cltd
4068da:	8b f0                	mov    %eax,%esi
4068dc:	8b c2                	mov    %edx,%eax
4068de:	89 45 f8             	mov    %eax,-0x8(%ebp)
4068e1:	85 c0                	test   %eax,%eax
4068e3:	7c 39                	jl     0x40691e
4068e5:	7f 04                	jg     0x4068eb
4068e7:	85 f6                	test   %esi,%esi
4068e9:	74 33                	je     0x40691e
4068eb:	3b d8                	cmp    %eax,%ebx
4068ed:	7f 0b                	jg     0x4068fa
4068ef:	7c 04                	jl     0x4068f5
4068f1:	3b fe                	cmp    %esi,%edi
4068f3:	73 05                	jae    0x4068fa
4068f5:	8b f7                	mov    %edi,%esi
4068f7:	89 5d f8             	mov    %ebx,-0x8(%ebp)
4068fa:	8b 45 08             	mov    0x8(%ebp),%eax
4068fd:	56                   	push   %esi
4068fe:	50                   	push   %eax
4068ff:	ff 75 f4             	push   -0xc(%ebp)
406902:	e8 69 20 00 00       	call   0x408970
406907:	8b 4d fc             	mov    -0x4(%ebp),%ecx
40690a:	83 c4 0c             	add    $0xc,%esp
40690d:	2b fe                	sub    %esi,%edi
40690f:	1b 5d f8             	sbb    -0x8(%ebp),%ebx
406912:	8b 41 30             	mov    0x30(%ecx),%eax
406915:	29 30                	sub    %esi,(%eax)
406917:	8b 41 20             	mov    0x20(%ecx),%eax
40691a:	01 30                	add    %esi,(%eax)
40691c:	eb 2a                	jmp    0x406948
40691e:	8b 01                	mov    (%ecx),%eax
406920:	8b 70 0c             	mov    0xc(%eax),%esi
406923:	8b ce                	mov    %esi,%ecx
406925:	8b 45 08             	mov    0x8(%ebp),%eax
406928:	0f b6 00             	movzbl (%eax),%eax
40692b:	50                   	push   %eax
40692c:	ff 15 54 41 42 00    	call   *0x424154
406932:	8b 4d fc             	mov    -0x4(%ebp),%ecx
406935:	ff d6                	call   *%esi
406937:	83 f8 ff             	cmp    $0xffffffff,%eax
40693a:	74 21                	je     0x40695d
40693c:	8b 4d fc             	mov    -0x4(%ebp),%ecx
40693f:	83 c7 ff             	add    $0xffffffff,%edi
406942:	83 d3 ff             	adc    $0xffffffff,%ebx
406945:	33 f6                	xor    %esi,%esi
406947:	46                   	inc    %esi
406948:	01 75 08             	add    %esi,0x8(%ebp)
40694b:	85 db                	test   %ebx,%ebx
40694d:	0f 8f 71 ff ff ff    	jg     0x4068c4
406953:	7c 08                	jl     0x40695d
406955:	85 ff                	test   %edi,%edi
406957:	0f 85 67 ff ff ff    	jne    0x4068c4
40695d:	8b 45 f0             	mov    -0x10(%ebp),%eax
406960:	8b 55 ec             	mov    -0x14(%ebp),%edx
406963:	5e                   	pop    %esi
406964:	2b c7                	sub    %edi,%eax
406966:	5f                   	pop    %edi
406967:	1b d3                	sbb    %ebx,%edx
406969:	5b                   	pop    %ebx
40696a:	c9                   	leave
40696b:	c2 0c 00             	ret    $0xc
40696e:	55                   	push   %ebp
40696f:	8b ec                	mov    %esp,%ebp
406971:	51                   	push   %ecx
406972:	8a 45 08             	mov    0x8(%ebp),%al
406975:	33 d2                	xor    %edx,%edx
406977:	56                   	push   %esi
406978:	8b f1                	mov    %ecx,%esi
40697a:	68 9c 44 42 00       	push   $0x42449c
40697f:	89 75 fc             	mov    %esi,-0x4(%ebp)
406982:	8d 4e 18             	lea    0x18(%esi),%ecx
406985:	c7 46 04 01 00 00 00 	movl   $0x1,0x4(%esi)
40698c:	c7 06 90 44 42 00    	movl   $0x424490,(%esi)
406992:	89 56 08             	mov    %edx,0x8(%esi)
406995:	89 56 0c             	mov    %edx,0xc(%esi)
406998:	89 56 10             	mov    %edx,0x10(%esi)
40699b:	88 46 14             	mov    %al,0x14(%esi)
40699e:	89 11                	mov    %edx,(%ecx)
4069a0:	88 51 04             	mov    %dl,0x4(%ecx)
4069a3:	e8 8a 00 00 00       	call   0x406a32
4069a8:	8b c6                	mov    %esi,%eax
4069aa:	5e                   	pop    %esi
4069ab:	c9                   	leave
4069ac:	c2 04 00             	ret    $0x4
4069af:	56                   	push   %esi
4069b0:	57                   	push   %edi
4069b1:	8b 79 04             	mov    0x4(%ecx),%edi
4069b4:	8b 07                	mov    (%edi),%eax
4069b6:	8b 70 08             	mov    0x8(%eax),%esi
4069b9:	8b ce                	mov    %esi,%ecx
4069bb:	ff 15 54 41 42 00    	call   *0x424154
4069c1:	8b cf                	mov    %edi,%ecx
4069c3:	ff d6                	call   *%esi
4069c5:	8b f8                	mov    %eax,%edi
4069c7:	85 ff                	test   %edi,%edi
4069c9:	74 12                	je     0x4069dd
4069cb:	8b 0f                	mov    (%edi),%ecx
4069cd:	6a 01                	push   $0x1
4069cf:	8b 31                	mov    (%ecx),%esi
4069d1:	8b ce                	mov    %esi,%ecx
4069d3:	ff 15 54 41 42 00    	call   *0x424154
4069d9:	8b cf                	mov    %edi,%ecx
4069db:	ff d6                	call   *%esi
4069dd:	5f                   	pop    %edi
4069de:	5e                   	pop    %esi
4069df:	c3                   	ret
4069e0:	56                   	push   %esi
4069e1:	eb 18                	jmp    0x4069fb
4069e3:	8b 06                	mov    (%esi),%eax
4069e5:	8b ce                	mov    %esi,%ecx
4069e7:	a3 f4 40 43 00       	mov    %eax,0x4340f4
4069ec:	e8 be ff ff ff       	call   0x4069af
4069f1:	6a 08                	push   $0x8
4069f3:	56                   	push   %esi
4069f4:	e8 53 0c 00 00       	call   0x40764c
4069f9:	59                   	pop    %ecx
4069fa:	59                   	pop    %ecx
4069fb:	8b 35 f4 40 43 00    	mov    0x4340f4,%esi
406a01:	85 f6                	test   %esi,%esi
406a03:	75 de                	jne    0x4069e3
406a05:	5e                   	pop    %esi
406a06:	c3                   	ret
406a07:	56                   	push   %esi
406a08:	8b f1                	mov    %ecx,%esi
406a0a:	56                   	push   %esi
406a0b:	c7 06 90 44 42 00    	movl   $0x424490,(%esi)
406a11:	e8 54 01 00 00       	call   0x406b6a
406a16:	83 7e 18 00          	cmpl   $0x0,0x18(%esi)
406a1a:	59                   	pop    %ecx
406a1b:	74 09                	je     0x406a26
406a1d:	ff 76 18             	push   0x18(%esi)
406a20:	e8 ee 61 00 00       	call   0x40cc13
406a25:	59                   	pop    %ecx
406a26:	83 66 18 00          	andl   $0x0,0x18(%esi)
406a2a:	c7 06 78 43 42 00    	movl   $0x424378,(%esi)
406a30:	5e                   	pop    %esi
406a31:	c3                   	ret
406a32:	55                   	push   %ebp
406a33:	8b ec                	mov    %esp,%ebp
406a35:	53                   	push   %ebx
406a36:	8b d9                	mov    %ecx,%ebx
406a38:	57                   	push   %edi
406a39:	8b 7d 08             	mov    0x8(%ebp),%edi
406a3c:	39 3b                	cmp    %edi,(%ebx)
406a3e:	74 3e                	je     0x406a7e
406a40:	83 3b 00             	cmpl   $0x0,(%ebx)
406a43:	74 08                	je     0x406a4d
406a45:	ff 33                	push   (%ebx)
406a47:	e8 c7 61 00 00       	call   0x40cc13
406a4c:	59                   	pop    %ecx