4ab926:	c7 45 cc 07 00 00 00 	movl   $0x7,-0x34(%ebp)
4ab92d:	f6 45 fc 80          	testb  $0x80,-0x4(%ebp)
4ab931:	c7 45 f0 10 00 00 00 	movl   $0x10,-0x10(%ebp)
4ab938:	74 5c                	je     0x4ab996
4ab93a:	8a 45 cc             	mov    -0x34(%ebp),%al
4ab93d:	c6 45 ea 30          	movb   $0x30,-0x16(%ebp)
4ab941:	04 51                	add    $0x51,%al
4ab943:	c7 45 dc 02 00 00 00 	movl   $0x2,-0x24(%ebp)
4ab94a:	88 45 eb             	mov    %al,-0x15(%ebp)
4ab94d:	eb 47                	jmp    0x4ab996
4ab94f:	f6 45 fc 80          	testb  $0x80,-0x4(%ebp)
4ab953:	c7 45 f0 08 00 00 00 	movl   $0x8,-0x10(%ebp)
4ab95a:	74 3a                	je     0x4ab996
4ab95c:	09 55 fc             	or     %edx,-0x4(%ebp)
4ab95f:	eb 35                	jmp    0x4ab996
4ab961:	8d 45 10             	lea    0x10(%ebp),%eax
4ab964:	50                   	push   %eax
4ab965:	e8 48 03 00 00       	call   0x4abcb2
4ab96a:	f6 45 fc 20          	testb  $0x20,-0x4(%ebp)
4ab96e:	59                   	pop    %ecx
4ab96f:	74 09                	je     0x4ab97a
4ab971:	66 8b 4d ec          	mov    -0x14(%ebp),%cx
4ab975:	66 89 08             	mov    %cx,(%eax)
4ab978:	eb 05                	jmp    0x4ab97f
4ab97a:	8b 4d ec             	mov    -0x14(%ebp),%ecx
4ab97d:	89 08                	mov    %ecx,(%eax)
4ab97f:	c7 45 c8 01 00 00 00 	movl   $0x1,-0x38(%ebp)
4ab986:	e9 3d 02 00 00       	jmp    0x4abbc8
4ab98b:	83 4d fc 40          	orl    $0x40,-0x4(%ebp)
4ab98f:	c7 45 f0 0a 00 00 00 	movl   $0xa,-0x10(%ebp)
4ab996:	f6 45 fd 80          	testb  $0x80,-0x3(%ebp)
4ab99a:	74 0c                	je     0x4ab9a8
4ab99c:	8d 45 10             	lea    0x10(%ebp),%eax
4ab99f:	50                   	push   %eax
4ab9a0:	e8 1a 03 00 00       	call   0x4abcbf
4ab9a5:	59                   	pop    %ecx
4ab9a6:	eb 41                	jmp    0x4ab9e9
4ab9a8:	f6 45 fc 20          	testb  $0x20,-0x4(%ebp)
4ab9ac:	74 21                	je     0x4ab9cf
4ab9ae:	f6 45 fc 40          	testb  $0x40,-0x4(%ebp)
4ab9b2:	8d 45 10             	lea    0x10(%ebp),%eax
4ab9b5:	50                   	push   %eax
4ab9b6:	74 0c                	je     0x4ab9c4
4ab9b8:	e8 f5 02 00 00       	call   0x4abcb2
4ab9bd:	59                   	pop    %ecx
4ab9be:	0f bf c0             	movswl %ax,%eax
4ab9c1:	99                   	cltd
4ab9c2:	eb 25                	jmp    0x4ab9e9
4ab9c4:	e8 e9 02 00 00       	call   0x4abcb2
4ab9c9:	59                   	pop    %ecx
4ab9ca:	0f b7 c0             	movzwl %ax,%eax
4ab9cd:	eb f2                	jmp    0x4ab9c1
4ab9cf:	f6 45 fc 40          	testb  $0x40,-0x4(%ebp)
4ab9d3:	8d 45 10             	lea    0x10(%ebp),%eax
4ab9d6:	50                   	push   %eax
4ab9d7:	74 08                	je     0x4ab9e1
4ab9d9:	e8 d4 02 00 00       	call   0x4abcb2
4ab9de:	59                   	pop    %ecx
4ab9df:	eb e0                	jmp    0x4ab9c1
4ab9e1:	e8 cc 02 00 00       	call   0x4abcb2
4ab9e6:	59                   	pop    %ecx
4ab9e7:	33 d2                	xor    %edx,%edx
4ab9e9:	f6 45 fc 40          	testb  $0x40,-0x4(%ebp)
4ab9ed:	74 1d                	je     0x4aba0c
4ab9ef:	85 d2                	test   %edx,%edx
4ab9f1:	7f 19                	jg     0x4aba0c
4ab9f3:	7c 04                	jl     0x4ab9f9
4ab9f5:	85 c0                	test   %eax,%eax
4ab9f7:	73 13                	jae    0x4aba0c
4ab9f9:	f7 d8                	neg    %eax
4ab9fb:	83 d2 00             	adc    $0x0,%edx
4ab9fe:	89 45 e0             	mov    %eax,-0x20(%ebp)
4aba01:	f7 da                	neg    %edx
4aba03:	80 4d fd 01          	orb    $0x1,-0x3(%ebp)
4aba07:	89 55 e4             	mov    %edx,-0x1c(%ebp)
4aba0a:	eb 06                	jmp    0x4aba12
4aba0c:	89 45 e0             	mov    %eax,-0x20(%ebp)
4aba0f:	89 55 e4             	mov    %edx,-0x1c(%ebp)
4aba12:	f6 45 fd 80          	testb  $0x80,-0x3(%ebp)
4aba16:	75 04                	jne    0x4aba1c
4aba18:	83 65 e4 00          	andl   $0x0,-0x1c(%ebp)
4aba1c:	83 7d f8 00          	cmpl   $0x0,-0x8(%ebp)
4aba20:	7d 09                	jge    0x4aba2b
4aba22:	c7 45 f8 01 00 00 00 	movl   $0x1,-0x8(%ebp)
4aba29:	eb 11                	jmp    0x4aba3c
4aba2b:	83 65 fc f7          	andl   $0xfffffff7,-0x4(%ebp)
4aba2f:	b8 00 02 00 00       	mov    $0x200,%eax
4aba34:	39 45 f8             	cmp    %eax,-0x8(%ebp)
4aba37:	7e 03                	jle    0x4aba3c
4aba39:	89 45 f8             	mov    %eax,-0x8(%ebp)
4aba3c:	8b 45 e0             	mov    -0x20(%ebp),%eax
4aba3f:	0b 45 e4             	or     -0x1c(%ebp),%eax
4aba42:	75 04                	jne    0x4aba48
4aba44:	83 65 dc 00          	andl   $0x0,-0x24(%ebp)
4aba48:	8d 45 b3             	lea    -0x4d(%ebp),%eax
4aba4b:	89 45 f4             	mov    %eax,-0xc(%ebp)
4aba4e:	8b 45 f8             	mov    -0x8(%ebp),%eax
4aba51:	ff 4d f8             	decl   -0x8(%ebp)
4aba54:	85 c0                	test   %eax,%eax
4aba56:	7f 08                	jg     0x4aba60
4aba58:	8b 45 e0             	mov    -0x20(%ebp),%eax
4aba5b:	0b 45 e4             	or     -0x1c(%ebp),%eax
4aba5e:	74 3f                	je     0x4aba9f
4aba60:	8b 45 f0             	mov    -0x10(%ebp),%eax
4aba63:	99                   	cltd
4aba64:	8b fa                	mov    %edx,%edi
4aba66:	8b f0                	mov    %eax,%esi
4aba68:	57                   	push   %edi
4aba69:	56                   	push   %esi
4aba6a:	ff 75 e4             	push   -0x1c(%ebp)
4aba6d:	ff 75 e0             	push   -0x20(%ebp)
4aba70:	e8 ab 56 00 00       	call   0x4b1120
4aba75:	57                   	push   %edi
4aba76:	56                   	push   %esi
4aba77:	ff 75 e4             	push   -0x1c(%ebp)
4aba7a:	8b d8                	mov    %eax,%ebx
4aba7c:	83 c3 30             	add    $0x30,%ebx
4aba7f:	ff 75 e0             	push   -0x20(%ebp)
4aba82:	e8 29 56 00 00       	call   0x4b10b0
4aba87:	83 fb 39             	cmp    $0x39,%ebx
4aba8a:	89 45 e0             	mov    %eax,-0x20(%ebp)
4aba8d:	89 55 e4             	mov    %edx,-0x1c(%ebp)
4aba90:	7e 03                	jle    0x4aba95
4aba92:	03 5d cc             	add    -0x34(%ebp),%ebx
4aba95:	8b 45 f4             	mov    -0xc(%ebp),%eax
4aba98:	ff 4d f4             	decl   -0xc(%ebp)
4aba9b:	88 18                	mov    %bl,(%eax)
4aba9d:	eb af                	jmp    0x4aba4e
4aba9f:	8d 45 b3             	lea    -0x4d(%ebp),%eax
4abaa2:	2b 45 f4             	sub    -0xc(%ebp),%eax
4abaa5:	ff 45 f4             	incl   -0xc(%ebp)
4abaa8:	f6 45 fd 02          	testb  $0x2,-0x3(%ebp)
4abaac:	89 45 f0             	mov    %eax,-0x10(%ebp)
4abaaf:	74 19                	je     0x4abaca
4abab1:	8b 4d f4             	mov    -0xc(%ebp),%ecx
4abab4:	80 39 30             	cmpb   $0x30,(%ecx)
4abab7:	75 04                	jne    0x4ababd
4abab9:	85 c0                	test   %eax,%eax
4ababb:	75 0d                	jne    0x4abaca
4ababd:	ff 4d f4             	decl   -0xc(%ebp)
4abac0:	40                   	inc    %eax
4abac1:	8b 4d f4             	mov    -0xc(%ebp),%ecx
4abac4:	c6 01 30             	movb   $0x30,(%ecx)
4abac7:	89 45 f0             	mov    %eax,-0x10(%ebp)
4abaca:	83 7d c8 00          	cmpl   $0x0,-0x38(%ebp)
4abace:	0f 85 f4 00 00 00    	jne    0x4abbc8
4abad4:	8b 5d fc             	mov    -0x4(%ebp),%ebx
4abad7:	f6 c3 40             	test   $0x40,%bl
4abada:	74 26                	je     0x4abb02
4abadc:	f6 c7 01             	test   $0x1,%bh
4abadf:	74 06                	je     0x4abae7
4abae1:	c6 45 ea 2d          	movb   $0x2d,-0x16(%ebp)
4abae5:	eb 14                	jmp    0x4abafb
4abae7:	f6 c3 01             	test   $0x1,%bl
4abaea:	74 06                	je     0x4abaf2
4abaec:	c6 45 ea 2b          	movb   $0x2b,-0x16(%ebp)
4abaf0:	eb 09                	jmp    0x4abafb
4abaf2:	f6 c3 02             	test   $0x2,%bl
4abaf5:	74 0b                	je     0x4abb02
4abaf7:	c6 45 ea 20          	movb   $0x20,-0x16(%ebp)
4abafb:	c7 45 dc 01 00 00 00 	movl   $0x1,-0x24(%ebp)
4abb02:	8b 75 d8             	mov    -0x28(%ebp),%esi
4abb05:	2b 75 dc             	sub    -0x24(%ebp),%esi
4abb08:	2b 75 f0             	sub    -0x10(%ebp),%esi
4abb0b:	f6 c3 0c             	test   $0xc,%bl
4abb0e:	75 12                	jne    0x4abb22
4abb10:	8d 45 ec             	lea    -0x14(%ebp),%eax
4abb13:	50                   	push   %eax
4abb14:	ff 75 08             	push   0x8(%ebp)
4abb17:	56                   	push   %esi
4abb18:	6a 20                	push   $0x20
4abb1a:	e8 2a 01 00 00       	call   0x4abc49
4abb1f:	83 c4 10             	add    $0x10,%esp
4abb22:	8d 45 ec             	lea    -0x14(%ebp),%eax
4abb25:	50                   	push   %eax
4abb26:	8d 45 ea             	lea    -0x16(%ebp),%eax
4abb29:	ff 75 08             	push   0x8(%ebp)
4abb2c:	ff 75 dc             	push   -0x24(%ebp)
4abb2f:	50                   	push   %eax
4abb30:	e8 45 01 00 00       	call   0x4abc7a
4abb35:	83 c4 10             	add    $0x10,%esp
4abb38:	f6 c3 08             	test   $0x8,%bl
4abb3b:	74 17                	je     0x4abb54
4abb3d:	f6 c3 04             	test   $0x4,%bl
4abb40:	75 12                	jne    0x4abb54
4abb42:	8d 45 ec             	lea    -0x14(%ebp),%eax
4abb45:	50                   	push   %eax
4abb46:	ff 75 08             	push   0x8(%ebp)
4abb49:	56                   	push   %esi
4abb4a:	6a 30                	push   $0x30
4abb4c:	e8 f8 00 00 00       	call   0x4abc49
4abb51:	83 c4 10             	add    $0x10,%esp
4abb54:	83 7d d4 00          	cmpl   $0x0,-0x2c(%ebp)
4abb58:	74 41                	je     0x4abb9b
4abb5a:	83 7d f0 00          	cmpl   $0x0,-0x10(%ebp)
4abb5e:	7e 3b                	jle    0x4abb9b
4abb60:	8b 45 f0             	mov    -0x10(%ebp),%eax
4abb63:	8b 5d f4             	mov    -0xc(%ebp),%ebx
4abb66:	8d 78 ff             	lea    -0x1(%eax),%edi
4abb69:	66 8b 03             	mov    (%ebx),%ax
4abb6c:	43                   	inc    %ebx
4abb6d:	50                   	push   %eax
4abb6e:	8d 45 bc             	lea    -0x44(%ebp),%eax
4abb71:	50                   	push   %eax
4abb72:	43                   	inc    %ebx
4abb73:	e8 76 54 00 00       	call   0x4b0fee
4abb78:	59                   	pop    %ecx
4abb79:	85 c0                	test   %eax,%eax
4abb7b:	59                   	pop    %ecx
4abb7c:	7e 32                	jle    0x4abbb0
4abb7e:	8d 4d ec             	lea    -0x14(%ebp),%ecx
4abb81:	51                   	push   %ecx
4abb82:	ff 75 08             	push   0x8(%ebp)
4abb85:	50                   	push   %eax
4abb86:	8d 45 bc             	lea    -0x44(%ebp),%eax
4abb89:	50                   	push   %eax
4abb8a:	e8 eb 00 00 00       	call   0x4abc7a
4abb8f:	83 c4 10             	add    $0x10,%esp
4abb92:	8b c7                	mov    %edi,%eax
4abb94:	4f                   	dec    %edi
4abb95:	85 c0                	test   %eax,%eax
4abb97:	75 d0                	jne    0x4abb69
4abb99:	eb 15                	jmp    0x4abbb0
4abb9b:	8d 45 ec             	lea    -0x14(%ebp),%eax
4abb9e:	50                   	push   %eax
4abb9f:	ff 75 08             	push   0x8(%ebp)
4abba2:	ff 75 f0             	push   -0x10(%ebp)
4abba5:	ff 75 f4             	push   -0xc(%ebp)
4abba8:	e8 cd 00 00 00       	call   0x4abc7a
4abbad:	83 c4 10             	add    $0x10,%esp
4abbb0:	f6 45 fc 04          	testb  $0x4,-0x4(%ebp)
4abbb4:	74 12                	je     0x4abbc8
4abbb6:	8d 45 ec             	lea    -0x14(%ebp),%eax
4abbb9:	50                   	push   %eax
4abbba:	ff 75 08             	push   0x8(%ebp)
4abbbd:	56                   	push   %esi
4abbbe:	6a 20                	push   $0x20
4abbc0:	e8 84 00 00 00       	call   0x4abc49
4abbc5:	83 c4 10             	add    $0x10,%esp
4abbc8:	83 7d d0 00          	cmpl   $0x0,-0x30(%ebp)
4abbcc:	74 0d                	je     0x4abbdb
4abbce:	ff 75 d0             	push   -0x30(%ebp)
4abbd1:	e8 f7 c8 ff ff       	call   0x4a84cd
4abbd6:	83 65 d0 00          	andl   $0x0,-0x30(%ebp)
4abbda:	59                   	pop    %ecx
4abbdb:	8b 75 0c             	mov    0xc(%ebp),%esi
4abbde:	8a 1e                	mov    (%esi),%bl
4abbe0:	46                   	inc    %esi
4abbe1:	84 db                	test   %bl,%bl
4abbe3:	89 75 0c             	mov    %esi,0xc(%ebp)
4abbe6:	0f 85 be f8 ff ff    	jne    0x4ab4aa
4abbec:	8b 45 ec             	mov    -0x14(%ebp),%eax
4abbef:	5f                   	pop    %edi
4abbf0:	5e                   	pop    %esi
4abbf1:	5b                   	pop    %ebx
4abbf2:	c9                   	leave
4abbf3:	c3                   	ret
4abbf4:	29 b6 4a 00 f9 b4    	sub    %esi,-0x4b06ffb6(%esi)
4abbfa:	4a                   	dec    %edx
4abbfb:	00 16                	add    %dl,(%esi)
4abbfd:	b5 4a                	mov    $0x4a,%ch
4abbff:	00 62 b5             	add    %ah,-0x4b(%edx)
4abc02:	4a                   	dec    %edx
4abc03:	00 99 b5 4a 00 a2    	add    %bl,-0x5dffb54b(%ecx)
4abc09:	b5 4a                	mov    $0x4a,%ch
4abc0b:	00 da                	add    %bl,%dl
4abc0d:	b5 4a                	mov    $0x4a,%ch
4abc0f:	00 6e b6             	add    %ch,-0x4a(%esi)
4abc12:	4a                   	dec    %edx
4abc13:	00 55 8b             	add    %dl,-0x75(%ebp)
4abc16:	ec                   	in     (%dx),%al
4abc17:	8b 4d 0c             	mov    0xc(%ebp),%ecx
4abc1a:	ff 49 04             	decl   0x4(%ecx)
4abc1d:	78 0e                	js     0x4abc2d
4abc1f:	8b 11                	mov    (%ecx),%edx
4abc21:	8a 45 08             	mov    0x8(%ebp),%al
4abc24:	88 02                	mov    %al,(%edx)
4abc26:	ff 01                	incl   (%ecx)
4abc28:	0f b6 c0             	movzbl %al,%eax
4abc2b:	eb 0b                	jmp    0x4abc38
4abc2d:	51                   	push   %ecx
4abc2e:	ff 75 08             	push   0x8(%ebp)
4abc31:	e8 28 f7 ff ff       	call   0x4ab35e
4abc36:	59                   	pop    %ecx
4abc37:	59                   	pop    %ecx
4abc38:	83 f8 ff             	cmp    $0xffffffff,%eax
4abc3b:	8b 45 10             	mov    0x10(%ebp),%eax
4abc3e:	75 05                	jne    0x4abc45
4abc40:	83 08 ff             	orl    $0xffffffff,(%eax)
4abc43:	5d                   	pop    %ebp
4abc44:	c3                   	ret
4abc45:	ff 00                	incl   (%eax)
4abc47:	5d                   	pop    %ebp
4abc48:	c3                   	ret
4abc49:	56                   	push   %esi
4abc4a:	57                   	push   %edi
4abc4b:	8b 7c 24 10          	mov    0x10(%esp),%edi
4abc4f:	8b c7                	mov    %edi,%eax
4abc51:	4f                   	dec    %edi
4abc52:	85 c0                	test   %eax,%eax
4abc54:	7e 21                	jle    0x4abc77
4abc56:	8b 74 24 18          	mov    0x18(%esp),%esi
4abc5a:	56                   	push   %esi
4abc5b:	ff 74 24 18          	push   0x18(%esp)
4abc5f:	ff 74 24 14          	push   0x14(%esp)
4abc63:	e8 ac ff ff ff       	call   0x4abc14
4abc68:	83 c4 0c             	add    $0xc,%esp
4abc6b:	83 3e ff             	cmpl   $0xffffffff,(%esi)
4abc6e:	74 07                	je     0x4abc77
4abc70:	8b c7                	mov    %edi,%eax
4abc72:	4f                   	dec    %edi
4abc73:	85 c0                	test   %eax,%eax
4abc75:	7f e3                	jg     0x4abc5a
4abc77:	5f                   	pop    %edi
4abc78:	5e                   	pop    %esi
4abc79:	c3                   	ret
4abc7a:	53                   	push   %ebx
4abc7b:	8b 5c 24 0c          	mov    0xc(%esp),%ebx
4abc7f:	8b c3                	mov    %ebx,%eax
4abc81:	4b                   	dec    %ebx
4abc82:	56                   	push   %esi
4abc83:	57                   	push   %edi
4abc84:	85 c0                	test   %eax,%eax
4abc86:	7e 26                	jle    0x4abcae
4abc88:	8b 7c 24 1c          	mov    0x1c(%esp),%edi
4abc8c:	8b 74 24 10          	mov    0x10(%esp),%esi
4abc90:	0f be 06             	movsbl (%esi),%eax
4abc93:	57                   	push   %edi
4abc94:	46                   	inc    %esi
4abc95:	ff 74 24 1c          	push   0x1c(%esp)
4abc99:	50                   	push   %eax
4abc9a:	e8 75 ff ff ff       	call   0x4abc14
4abc9f:	83 c4 0c             	add    $0xc,%esp
4abca2:	83 3f ff             	cmpl   $0xffffffff,(%edi)
4abca5:	74 07                	je     0x4abcae
4abca7:	8b c3                	mov    %ebx,%eax
4abca9:	4b                   	dec    %ebx
4abcaa:	85 c0                	test   %eax,%eax
4abcac:	7f e2                	jg     0x4abc90
4abcae:	5f                   	pop    %edi
4abcaf:	5e                   	pop    %esi
4abcb0:	5b                   	pop    %ebx
4abcb1:	c3                   	ret
4abcb2:	8b 44 24 04          	mov    0x4(%esp),%eax
4abcb6:	83 00 04             	addl   $0x4,(%eax)
4abcb9:	8b 00                	mov    (%eax),%eax
4abcbb:	8b 40 fc             	mov    -0x4(%eax),%eax
4abcbe:	c3                   	ret
4abcbf:	8b 44 24 04          	mov    0x4(%esp),%eax
4abcc3:	83 00 08             	addl   $0x8,(%eax)