4296a2:	85 f6                	test   %esi,%esi
4296a4:	74 08                	je     0x4296ae
4296a6:	89 0e                	mov    %ecx,(%esi)
4296a8:	83 c6 04             	add    $0x4,%esi
4296ab:	89 75 0c             	mov    %esi,0xc(%ebp)
4296ae:	53                   	push   %ebx
4296af:	57                   	push   %edi
4296b0:	32 db                	xor    %bl,%bl
4296b2:	c7 45 f4 09 00 00 00 	movl   $0x9,-0xc(%ebp)
4296b9:	eb 03                	jmp    0x4296be
4296bb:	8b 45 18             	mov    0x18(%ebp),%eax
4296be:	6a 22                	push   $0x22
4296c0:	5e                   	pop    %esi
4296c1:	66 39 32             	cmp    %si,(%edx)
4296c4:	8b fa                	mov    %edx,%edi
4296c6:	8b 75 0c             	mov    0xc(%ebp),%esi
4296c9:	75 0d                	jne    0x4296d8
4296cb:	84 db                	test   %bl,%bl
4296cd:	6a 22                	push   $0x22
4296cf:	0f 94 c3             	sete   %bl
4296d2:	83 c2 02             	add    $0x2,%edx
4296d5:	58                   	pop    %eax
4296d6:	eb 1a                	jmp    0x4296f2
4296d8:	ff 00                	incl   (%eax)
4296da:	85 c9                	test   %ecx,%ecx
4296dc:	74 09                	je     0x4296e7
4296de:	66 8b 02             	mov    (%edx),%ax
4296e1:	66 89 01             	mov    %ax,(%ecx)
4296e4:	83 c1 02             	add    $0x2,%ecx
4296e7:	0f b7 02             	movzwl (%edx),%eax
4296ea:	83 c2 02             	add    $0x2,%edx
4296ed:	66 85 c0             	test   %ax,%ax
4296f0:	74 23                	je     0x429715
4296f2:	84 db                	test   %bl,%bl
4296f4:	75 c5                	jne    0x4296bb
4296f6:	6a 20                	push   $0x20
4296f8:	5f                   	pop    %edi
4296f9:	66 3b c7             	cmp    %di,%ax
4296fc:	74 0b                	je     0x429709
4296fe:	6a 09                	push   $0x9
429700:	5f                   	pop    %edi
429701:	66 3b c7             	cmp    %di,%ax
429704:	8b 45 18             	mov    0x18(%ebp),%eax
429707:	75 b5                	jne    0x4296be
429709:	85 c9                	test   %ecx,%ecx
42970b:	74 0a                	je     0x429717
42970d:	33 c0                	xor    %eax,%eax
42970f:	66 89 41 fe          	mov    %ax,-0x2(%ecx)
429713:	eb 02                	jmp    0x429717
429715:	8b d7                	mov    %edi,%edx
429717:	c6 45 ff 00          	movb   $0x0,-0x1(%ebp)
42971b:	0f b7 02             	movzwl (%edx),%eax
42971e:	8b f8                	mov    %eax,%edi
429720:	66 85 c0             	test   %ax,%ax
429723:	74 19                	je     0x42973e
429725:	6a 20                	push   $0x20
429727:	5b                   	pop    %ebx
429728:	66 3b c3             	cmp    %bx,%ax
42972b:	74 09                	je     0x429736
42972d:	0f b7 f8             	movzwl %ax,%edi
429730:	66 3b 45 f4          	cmp    -0xc(%ebp),%ax
429734:	75 08                	jne    0x42973e
429736:	83 c2 02             	add    $0x2,%edx
429739:	0f b7 02             	movzwl (%edx),%eax
42973c:	eb ea                	jmp    0x429728
42973e:	66 85 ff             	test   %di,%di
429741:	0f 84 ca 00 00 00    	je     0x429811
429747:	85 f6                	test   %esi,%esi
429749:	74 08                	je     0x429753
42974b:	89 0e                	mov    %ecx,(%esi)
42974d:	83 c6 04             	add    $0x4,%esi
429750:	89 75 0c             	mov    %esi,0xc(%ebp)
429753:	8b 45 14             	mov    0x14(%ebp),%eax
429756:	6a 5c                	push   $0x5c
429758:	5e                   	pop    %esi
429759:	ff 00                	incl   (%eax)
42975b:	0f b7 02             	movzwl (%edx),%eax
42975e:	33 db                	xor    %ebx,%ebx
429760:	c7 45 f8 01 00 00 00 	movl   $0x1,-0x8(%ebp)
429767:	8b f8                	mov    %eax,%edi
429769:	66 3b c6             	cmp    %si,%ax
42976c:	75 0e                	jne    0x42977c
42976e:	83 c2 02             	add    $0x2,%edx
429771:	43                   	inc    %ebx
429772:	0f b7 02             	movzwl (%edx),%eax
429775:	66 3b c6             	cmp    %si,%ax
429778:	74 f4                	je     0x42976e
42977a:	8b f8                	mov    %eax,%edi
42977c:	6a 22                	push   $0x22
42977e:	58                   	pop    %eax
42977f:	66 3b f8             	cmp    %ax,%di
429782:	75 29                	jne    0x4297ad
429784:	f6 c3 01             	test   $0x1,%bl
429787:	75 22                	jne    0x4297ab
429789:	8a 45 ff             	mov    -0x1(%ebp),%al
42978c:	84 c0                	test   %al,%al
42978e:	74 11                	je     0x4297a1
429790:	6a 22                	push   $0x22
429792:	5f                   	pop    %edi
429793:	66 39 7a 02          	cmp    %di,0x2(%edx)
429797:	75 05                	jne    0x42979e
429799:	83 c2 02             	add    $0x2,%edx
42979c:	eb 0d                	jmp    0x4297ab
42979e:	8a 45 ff             	mov    -0x1(%ebp),%al
4297a1:	83 65 f8 00          	andl   $0x0,-0x8(%ebp)
4297a5:	84 c0                	test   %al,%al
4297a7:	0f 94 45 ff          	sete   -0x1(%ebp)
4297ab:	d1 eb                	shr    $1,%ebx
4297ad:	8b 7d 18             	mov    0x18(%ebp),%edi
4297b0:	85 db                	test   %ebx,%ebx
4297b2:	74 0f                	je     0x4297c3
4297b4:	4b                   	dec    %ebx
4297b5:	85 c9                	test   %ecx,%ecx
4297b7:	74 06                	je     0x4297bf
4297b9:	66 89 31             	mov    %si,(%ecx)
4297bc:	83 c1 02             	add    $0x2,%ecx
4297bf:	ff 07                	incl   (%edi)
4297c1:	eb ed                	jmp    0x4297b0
4297c3:	0f b7 02             	movzwl (%edx),%eax
4297c6:	66 85 c0             	test   %ax,%ax
4297c9:	74 30                	je     0x4297fb
4297cb:	80 7d ff 00          	cmpb   $0x0,-0x1(%ebp)
4297cf:	75 10                	jne    0x4297e1
4297d1:	6a 20                	push   $0x20
4297d3:	5b                   	pop    %ebx
4297d4:	66 3b c3             	cmp    %bx,%ax
4297d7:	74 22                	je     0x4297fb
4297d9:	6a 09                	push   $0x9
4297db:	5b                   	pop    %ebx
4297dc:	66 3b c3             	cmp    %bx,%ax
4297df:	74 1a                	je     0x4297fb
4297e1:	83 7d f8 00          	cmpl   $0x0,-0x8(%ebp)
4297e5:	74 0c                	je     0x4297f3
4297e7:	85 c9                	test   %ecx,%ecx
4297e9:	74 06                	je     0x4297f1
4297eb:	66 89 01             	mov    %ax,(%ecx)
4297ee:	83 c1 02             	add    $0x2,%ecx
4297f1:	ff 07                	incl   (%edi)
4297f3:	83 c2 02             	add    $0x2,%edx
4297f6:	e9 60 ff ff ff       	jmp    0x42975b
4297fb:	8b 75 0c             	mov    0xc(%ebp),%esi
4297fe:	85 c9                	test   %ecx,%ecx
429800:	74 08                	je     0x42980a
429802:	33 c0                	xor    %eax,%eax
429804:	66 89 01             	mov    %ax,(%ecx)
429807:	83 c1 02             	add    $0x2,%ecx
42980a:	ff 07                	incl   (%edi)
42980c:	e9 0a ff ff ff       	jmp    0x42971b
429811:	5f                   	pop    %edi
429812:	5b                   	pop    %ebx
429813:	85 f6                	test   %esi,%esi
429815:	74 03                	je     0x42981a
429817:	83 26 00             	andl   $0x0,(%esi)
42981a:	8b 45 14             	mov    0x14(%ebp),%eax
42981d:	5e                   	pop    %esi
42981e:	ff 00                	incl   (%eax)
429820:	c9                   	leave
429821:	c3                   	ret
429822:	8b ff                	mov    %edi,%edi
429824:	55                   	push   %ebp
429825:	8b ec                	mov    %esp,%ebp
429827:	56                   	push   %esi
429828:	8b 75 08             	mov    0x8(%ebp),%esi
42982b:	81 fe ff ff ff 3f    	cmp    $0x3fffffff,%esi
429831:	73 39                	jae    0x42986c
429833:	83 c8 ff             	or     $0xffffffff,%eax
429836:	8b 4d 0c             	mov    0xc(%ebp),%ecx
429839:	33 d2                	xor    %edx,%edx
42983b:	f7 75 10             	divl   0x10(%ebp)
42983e:	3b c8                	cmp    %eax,%ecx
429840:	73 2a                	jae    0x42986c
429842:	0f af 4d 10          	imul   0x10(%ebp),%ecx
429846:	c1 e6 02             	shl    $0x2,%esi
429849:	8b c6                	mov    %esi,%eax
42984b:	f7 d0                	not    %eax
42984d:	3b c1                	cmp    %ecx,%eax
42984f:	76 1b                	jbe    0x42986c
429851:	8d 04 0e             	lea    (%esi,%ecx,1),%eax
429854:	6a 01                	push   $0x1
429856:	50                   	push   %eax
429857:	e8 be 2b 00 00       	call   0x42c41a
42985c:	6a 00                	push   $0x0
42985e:	8b f0                	mov    %eax,%esi
429860:	e8 12 2c 00 00       	call   0x42c477
429865:	83 c4 0c             	add    $0xc,%esp
429868:	8b c6                	mov    %esi,%eax
42986a:	eb 02                	jmp    0x42986e
42986c:	33 c0                	xor    %eax,%eax
42986e:	5e                   	pop    %esi
42986f:	5d                   	pop    %ebp
429870:	c3                   	ret
429871:	8b ff                	mov    %edi,%edi
429873:	55                   	push   %ebp
429874:	8b ec                	mov    %esp,%ebp
429876:	5d                   	pop    %ebp
429877:	e9 cf fc ff ff       	jmp    0x42954b
42987c:	a1 e0 5c 45 00       	mov    0x455ce0,%eax
429881:	85 c0                	test   %eax,%eax
429883:	75 22                	jne    0x4298a7
429885:	39 05 dc 5c 45 00    	cmp    %eax,0x455cdc
42988b:	74 18                	je     0x4298a5
42988d:	e8 16 00 00 00       	call   0x4298a8
429892:	85 c0                	test   %eax,%eax
429894:	74 09                	je     0x42989f
429896:	e8 af 01 00 00       	call   0x429a4a
42989b:	85 c0                	test   %eax,%eax
42989d:	75 06                	jne    0x4298a5
42989f:	a1 e0 5c 45 00       	mov    0x455ce0,%eax
4298a4:	c3                   	ret
4298a5:	33 c0                	xor    %eax,%eax
4298a7:	c3                   	ret
4298a8:	83 3d e0 5c 45 00 00 	cmpl   $0x0,0x455ce0
4298af:	74 03                	je     0x4298b4
4298b1:	33 c0                	xor    %eax,%eax
4298b3:	c3                   	ret
4298b4:	56                   	push   %esi
4298b5:	e8 46 a5 00 00       	call   0x433e00
4298ba:	8b f0                	mov    %eax,%esi
4298bc:	85 f6                	test   %esi,%esi
4298be:	75 0c                	jne    0x4298cc
4298c0:	50                   	push   %eax
4298c1:	e8 b1 2b 00 00       	call   0x42c477
4298c6:	59                   	pop    %ecx
4298c7:	83 c8 ff             	or     $0xffffffff,%eax
4298ca:	5e                   	pop    %esi
4298cb:	c3                   	ret
4298cc:	57                   	push   %edi
4298cd:	56                   	push   %esi
4298ce:	e8 2a 00 00 00       	call   0x4298fd
4298d3:	59                   	pop    %ecx
4298d4:	85 c0                	test   %eax,%eax
4298d6:	75 05                	jne    0x4298dd
4298d8:	83 cf ff             	or     $0xffffffff,%edi
4298db:	eb 0c                	jmp    0x4298e9
4298dd:	a3 e4 5c 45 00       	mov    %eax,0x455ce4
4298e2:	33 ff                	xor    %edi,%edi
4298e4:	a3 e0 5c 45 00       	mov    %eax,0x455ce0
4298e9:	6a 00                	push   $0x0
4298eb:	e8 87 2b 00 00       	call   0x42c477
4298f0:	56                   	push   %esi
4298f1:	e8 81 2b 00 00       	call   0x42c477
4298f6:	59                   	pop    %ecx
4298f7:	59                   	pop    %ecx
4298f8:	8b c7                	mov    %edi,%eax
4298fa:	5f                   	pop    %edi
4298fb:	5e                   	pop    %esi
4298fc:	c3                   	ret
4298fd:	8b ff                	mov    %edi,%edi
4298ff:	55                   	push   %ebp
429900:	8b ec                	mov    %esp,%ebp
429902:	83 ec 0c             	sub    $0xc,%esp
429905:	53                   	push   %ebx
429906:	8b 5d 08             	mov    0x8(%ebp),%ebx
429909:	56                   	push   %esi
42990a:	57                   	push   %edi
42990b:	33 ff                	xor    %edi,%edi
42990d:	8b f3                	mov    %ebx,%esi
42990f:	0f b7 03             	movzwl (%ebx),%eax
429912:	8b d7                	mov    %edi,%edx
429914:	89 7d fc             	mov    %edi,-0x4(%ebp)
429917:	66 85 c0             	test   %ax,%ax
42991a:	74 35                	je     0x429951
42991c:	6a 3d                	push   $0x3d
42991e:	8b c8                	mov    %eax,%ecx
429920:	5b                   	pop    %ebx
429921:	66 3b cb             	cmp    %bx,%cx
429924:	74 01                	je     0x429927
429926:	42                   	inc    %edx
429927:	8b ce                	mov    %esi,%ecx
429929:	8d 79 02             	lea    0x2(%ecx),%edi
42992c:	66 8b 01             	mov    (%ecx),%ax
42992f:	83 c1 02             	add    $0x2,%ecx
429932:	66 3b 45 fc          	cmp    -0x4(%ebp),%ax
429936:	75 f4                	jne    0x42992c
429938:	2b cf                	sub    %edi,%ecx
42993a:	d1 f9                	sar    $1,%ecx
42993c:	8d 34 4e             	lea    (%esi,%ecx,2),%esi
42993f:	83 c6 02             	add    $0x2,%esi
429942:	0f b7 06             	movzwl (%esi),%eax
429945:	8b c8                	mov    %eax,%ecx
429947:	66 85 c0             	test   %ax,%ax
42994a:	75 d5                	jne    0x429921
42994c:	8b 5d 08             	mov    0x8(%ebp),%ebx
42994f:	33 ff                	xor    %edi,%edi
429951:	8d 42 01             	lea    0x1(%edx),%eax
429954:	6a 04                	push   $0x4
429956:	50                   	push   %eax
429957:	e8 be 2a 00 00       	call   0x42c41a
42995c:	8b f0                	mov    %eax,%esi
42995e:	59                   	pop    %ecx
42995f:	59                   	pop    %ecx
429960:	85 f6                	test   %esi,%esi
429962:	75 0a                	jne    0x42996e
429964:	57                   	push   %edi
429965:	e8 0d 2b 00 00       	call   0x42c477
42996a:	33 c0                	xor    %eax,%eax
42996c:	eb 7f                	jmp    0x4299ed
42996e:	0f b7 03             	movzwl (%ebx),%eax
429971:	89 75 f8             	mov    %esi,-0x8(%ebp)
429974:	66 85 c0             	test   %ax,%ax
429977:	74 6a                	je     0x4299e3
429979:	8b d0                	mov    %eax,%edx
42997b:	8b cb                	mov    %ebx,%ecx
42997d:	8d 79 02             	lea    0x2(%ecx),%edi
429980:	66 8b 01             	mov    (%ecx),%ax
429983:	83 c1 02             	add    $0x2,%ecx
429986:	66 3b 45 fc          	cmp    -0x4(%ebp),%ax
42998a:	75 f4                	jne    0x429980
42998c:	2b cf                	sub    %edi,%ecx
42998e:	d1 f9                	sar    $1,%ecx
429990:	6a 3d                	push   $0x3d
429992:	8d 41 01             	lea    0x1(%ecx),%eax
429995:	59                   	pop    %ecx
429996:	89 45 f4             	mov    %eax,-0xc(%ebp)
429999:	66 3b d1             	cmp    %cx,%dx
42999c:	74 38                	je     0x4299d6
42999e:	6a 02                	push   $0x2
4299a0:	50                   	push   %eax
4299a1:	e8 74 2a 00 00       	call   0x42c41a
4299a6:	8b f8                	mov    %eax,%edi
4299a8:	59                   	pop    %ecx
4299a9:	59                   	pop    %ecx
4299aa:	85 ff                	test   %edi,%edi
4299ac:	74 45                	je     0x4299f3
4299ae:	53                   	push   %ebx
4299af:	ff 75 f4             	push   -0xc(%ebp)
4299b2:	57                   	push   %edi
4299b3:	e8 be ca ff ff       	call   0x426476
4299b8:	83 c4 0c             	add    $0xc,%esp
4299bb:	85 c0                	test   %eax,%eax
4299bd:	75 4f                	jne    0x429a0e
4299bf:	8b 45 f8             	mov    -0x8(%ebp),%eax
4299c2:	89 38                	mov    %edi,(%eax)
4299c4:	83 c0 04             	add    $0x4,%eax
4299c7:	89 45 f8             	mov    %eax,-0x8(%ebp)
4299ca:	33 c0                	xor    %eax,%eax
4299cc:	50                   	push   %eax
4299cd:	e8 a5 2a 00 00       	call   0x42c477
4299d2:	8b 45 f4             	mov    -0xc(%ebp),%eax
4299d5:	59                   	pop    %ecx
4299d6:	8d 1c 43             	lea    (%ebx,%eax,2),%ebx
4299d9:	0f b7 03             	movzwl (%ebx),%eax
4299dc:	8b d0                	mov    %eax,%edx
4299de:	66 85 c0             	test   %ax,%ax
4299e1:	75 98                	jne    0x42997b
4299e3:	33 c0                	xor    %eax,%eax
4299e5:	50                   	push   %eax
4299e6:	e8 8c 2a 00 00       	call   0x42c477
4299eb:	8b c6                	mov    %esi,%eax
4299ed:	59                   	pop    %ecx