43ec27:	2b f1                	sub    %ecx,%esi
43ec29:	0f b7 01             	movzwl (%ecx),%eax
43ec2c:	66 89 04 0e          	mov    %ax,(%esi,%ecx,1)
43ec30:	83 c1 02             	add    $0x2,%ecx
43ec33:	66 85 c0             	test   %ax,%ax
43ec36:	74 27                	je     0x43ec5f
43ec38:	4f                   	dec    %edi
43ec39:	75 ee                	jne    0x43ec29
43ec3b:	eb 22                	jmp    0x43ec5f
43ec3d:	8b f1                	mov    %ecx,%esi
43ec3f:	2b f2                	sub    %edx,%esi
43ec41:	0f b7 0c 06          	movzwl (%esi,%eax,1),%ecx
43ec45:	66 89 08             	mov    %cx,(%eax)
43ec48:	83 c0 02             	add    $0x2,%eax
43ec4b:	66 85 c9             	test   %cx,%cx
43ec4e:	74 06                	je     0x43ec56
43ec50:	4f                   	dec    %edi
43ec51:	74 03                	je     0x43ec56
43ec53:	4b                   	dec    %ebx
43ec54:	75 eb                	jne    0x43ec41
43ec56:	85 db                	test   %ebx,%ebx
43ec58:	75 05                	jne    0x43ec5f
43ec5a:	33 c9                	xor    %ecx,%ecx
43ec5c:	66 89 08             	mov    %cx,(%eax)
43ec5f:	85 ff                	test   %edi,%edi
43ec61:	0f 85 79 ff ff ff    	jne    0x43ebe0
43ec67:	33 c0                	xor    %eax,%eax
43ec69:	83 fb ff             	cmp    $0xffffffff,%ebx
43ec6c:	75 10                	jne    0x43ec7e
43ec6e:	8b 4d 0c             	mov    0xc(%ebp),%ecx
43ec71:	6a 50                	push   $0x50
43ec73:	66 89 44 4a fe       	mov    %ax,-0x2(%edx,%ecx,2)
43ec78:	58                   	pop    %eax
43ec79:	e9 64 ff ff ff       	jmp    0x43ebe2
43ec7e:	66 89 02             	mov    %ax,(%edx)
43ec81:	e8 22 5d ff ff       	call   0x4349a8
43ec86:	6a 22                	push   $0x22
43ec88:	59                   	pop    %ecx
43ec89:	89 08                	mov    %ecx,(%eax)
43ec8b:	8b f1                	mov    %ecx,%esi
43ec8d:	e9 6a ff ff ff       	jmp    0x43ebfc
43ec92:	8b ff                	mov    %edi,%edi
43ec94:	55                   	push   %ebp
43ec95:	8b ec                	mov    %esp,%ebp
43ec97:	8b 45 08             	mov    0x8(%ebp),%eax
43ec9a:	66 8b 08             	mov    (%eax),%cx
43ec9d:	83 c0 02             	add    $0x2,%eax
43eca0:	66 85 c9             	test   %cx,%cx
43eca3:	75 f5                	jne    0x43ec9a
43eca5:	2b 45 08             	sub    0x8(%ebp),%eax
43eca8:	d1 f8                	sar    $1,%eax
43ecaa:	48                   	dec    %eax
43ecab:	5d                   	pop    %ebp
43ecac:	c3                   	ret
43ecad:	8b ff                	mov    %edi,%edi
43ecaf:	55                   	push   %ebp
43ecb0:	8b ec                	mov    %esp,%ebp
43ecb2:	56                   	push   %esi
43ecb3:	8b 75 08             	mov    0x8(%ebp),%esi
43ecb6:	57                   	push   %edi
43ecb7:	85 f6                	test   %esi,%esi
43ecb9:	74 07                	je     0x43ecc2
43ecbb:	8b 7d 0c             	mov    0xc(%ebp),%edi
43ecbe:	85 ff                	test   %edi,%edi
43ecc0:	75 15                	jne    0x43ecd7
43ecc2:	e8 e1 5c ff ff       	call   0x4349a8
43ecc7:	6a 16                	push   $0x16
43ecc9:	5e                   	pop    %esi
43ecca:	89 30                	mov    %esi,(%eax)
43eccc:	e8 9d 56 ff ff       	call   0x43436e
43ecd1:	8b c6                	mov    %esi,%eax
43ecd3:	5f                   	pop    %edi
43ecd4:	5e                   	pop    %esi
43ecd5:	5d                   	pop    %ebp
43ecd6:	c3                   	ret
43ecd7:	8b 45 10             	mov    0x10(%ebp),%eax
43ecda:	85 c0                	test   %eax,%eax
43ecdc:	75 05                	jne    0x43ece3
43ecde:	66 89 06             	mov    %ax,(%esi)
43ece1:	eb df                	jmp    0x43ecc2
43ece3:	8b d6                	mov    %esi,%edx
43ece5:	2b d0                	sub    %eax,%edx
43ece7:	0f b7 08             	movzwl (%eax),%ecx
43ecea:	66 89 0c 02          	mov    %cx,(%edx,%eax,1)
43ecee:	83 c0 02             	add    $0x2,%eax
43ecf1:	66 85 c9             	test   %cx,%cx
43ecf4:	74 03                	je     0x43ecf9
43ecf6:	4f                   	dec    %edi
43ecf7:	75 ee                	jne    0x43ece7
43ecf9:	33 c0                	xor    %eax,%eax
43ecfb:	85 ff                	test   %edi,%edi
43ecfd:	75 d4                	jne    0x43ecd3
43ecff:	66 89 06             	mov    %ax,(%esi)
43ed02:	e8 a1 5c ff ff       	call   0x4349a8
43ed07:	6a 22                	push   $0x22
43ed09:	59                   	pop    %ecx
43ed0a:	89 08                	mov    %ecx,(%eax)
43ed0c:	8b f1                	mov    %ecx,%esi
43ed0e:	eb bc                	jmp    0x43eccc
43ed10:	8b ff                	mov    %edi,%edi
43ed12:	55                   	push   %ebp
43ed13:	8b ec                	mov    %esp,%ebp
43ed15:	8b 4d 08             	mov    0x8(%ebp),%ecx
43ed18:	85 c9                	test   %ecx,%ecx
43ed1a:	78 1e                	js     0x43ed3a
43ed1c:	83 f9 02             	cmp    $0x2,%ecx
43ed1f:	7e 0c                	jle    0x43ed2d
43ed21:	83 f9 03             	cmp    $0x3,%ecx
43ed24:	75 14                	jne    0x43ed3a
43ed26:	a1 d4 07 47 00       	mov    0x4707d4,%eax
43ed2b:	5d                   	pop    %ebp
43ed2c:	c3                   	ret
43ed2d:	a1 d4 07 47 00       	mov    0x4707d4,%eax
43ed32:	89 0d d4 07 47 00    	mov    %ecx,0x4707d4
43ed38:	5d                   	pop    %ebp
43ed39:	c3                   	ret
43ed3a:	e8 69 5c ff ff       	call   0x4349a8
43ed3f:	c7 00 16 00 00 00    	movl   $0x16,(%eax)
43ed45:	e8 24 56 ff ff       	call   0x43436e
43ed4a:	83 c8 ff             	or     $0xffffffff,%eax
43ed4d:	5d                   	pop    %ebp
43ed4e:	c3                   	ret
43ed4f:	8b ff                	mov    %edi,%edi
43ed51:	55                   	push   %ebp
43ed52:	8b ec                	mov    %esp,%ebp
43ed54:	8b 45 08             	mov    0x8(%ebp),%eax
43ed57:	a3 98 f2 46 00       	mov    %eax,0x46f298
43ed5c:	5d                   	pop    %ebp
43ed5d:	c3                   	ret
43ed5e:	8b ff                	mov    %edi,%edi
43ed60:	55                   	push   %ebp
43ed61:	8b ec                	mov    %esp,%ebp
43ed63:	8b 45 08             	mov    0x8(%ebp),%eax
43ed66:	83 f8 fe             	cmp    $0xfffffffe,%eax
43ed69:	75 0f                	jne    0x43ed7a
43ed6b:	e8 38 5c ff ff       	call   0x4349a8
43ed70:	c7 00 09 00 00 00    	movl   $0x9,(%eax)
43ed76:	33 c0                	xor    %eax,%eax
43ed78:	5d                   	pop    %ebp
43ed79:	c3                   	ret
43ed7a:	85 c0                	test   %eax,%eax
43ed7c:	78 08                	js     0x43ed86
43ed7e:	3b 05 2c 17 47 00    	cmp    0x47172c,%eax
43ed84:	72 12                	jb     0x43ed98
43ed86:	e8 1d 5c ff ff       	call   0x4349a8
43ed8b:	c7 00 09 00 00 00    	movl   $0x9,(%eax)
43ed91:	e8 d8 55 ff ff       	call   0x43436e
43ed96:	eb de                	jmp    0x43ed76
43ed98:	8b c8                	mov    %eax,%ecx
43ed9a:	83 e0 1f             	and    $0x1f,%eax
43ed9d:	c1 f9 05             	sar    $0x5,%ecx
43eda0:	8b 0c 8d 80 17 47 00 	mov    0x471780(,%ecx,4),%ecx
43eda7:	c1 e0 06             	shl    $0x6,%eax
43edaa:	0f be 44 01 04       	movsbl 0x4(%ecx,%eax,1),%eax
43edaf:	83 e0 40             	and    $0x40,%eax
43edb2:	5d                   	pop    %ebp
43edb3:	c3                   	ret
43edb4:	8b ff                	mov    %edi,%edi
43edb6:	55                   	push   %ebp
43edb7:	8b ec                	mov    %esp,%ebp
43edb9:	83 ec 10             	sub    $0x10,%esp
43edbc:	53                   	push   %ebx
43edbd:	56                   	push   %esi
43edbe:	8b 75 0c             	mov    0xc(%ebp),%esi
43edc1:	33 db                	xor    %ebx,%ebx
43edc3:	57                   	push   %edi
43edc4:	8b 7d 10             	mov    0x10(%ebp),%edi
43edc7:	3b f3                	cmp    %ebx,%esi
43edc9:	75 11                	jne    0x43eddc
43edcb:	3b fb                	cmp    %ebx,%edi
43edcd:	76 0d                	jbe    0x43eddc
43edcf:	8b 45 08             	mov    0x8(%ebp),%eax
43edd2:	3b c3                	cmp    %ebx,%eax
43edd4:	74 02                	je     0x43edd8
43edd6:	89 18                	mov    %ebx,(%eax)
43edd8:	33 c0                	xor    %eax,%eax
43edda:	eb 7b                	jmp    0x43ee57
43eddc:	8b 45 08             	mov    0x8(%ebp),%eax
43eddf:	3b c3                	cmp    %ebx,%eax
43ede1:	74 03                	je     0x43ede6
43ede3:	83 08 ff             	orl    $0xffffffff,(%eax)
43ede6:	81 ff ff ff ff 7f    	cmp    $0x7fffffff,%edi
43edec:	76 13                	jbe    0x43ee01
43edee:	e8 b5 5b ff ff       	call   0x4349a8
43edf3:	6a 16                	push   $0x16
43edf5:	5e                   	pop    %esi
43edf6:	89 30                	mov    %esi,(%eax)
43edf8:	e8 71 55 ff ff       	call   0x43436e
43edfd:	8b c6                	mov    %esi,%eax
43edff:	eb 56                	jmp    0x43ee57
43ee01:	ff 75 18             	push   0x18(%ebp)
43ee04:	8d 4d f0             	lea    -0x10(%ebp),%ecx
43ee07:	e8 de 1d ff ff       	call   0x430bea
43ee0c:	8b 45 f0             	mov    -0x10(%ebp),%eax
43ee0f:	39 58 14             	cmp    %ebx,0x14(%eax)
43ee12:	0f 85 90 00 00 00    	jne    0x43eea8
43ee18:	66 8b 45 14          	mov    0x14(%ebp),%ax
43ee1c:	b9 ff 00 00 00       	mov    $0xff,%ecx
43ee21:	66 3b c1             	cmp    %cx,%ax
43ee24:	76 36                	jbe    0x43ee5c
43ee26:	3b f3                	cmp    %ebx,%esi
43ee28:	74 0f                	je     0x43ee39
43ee2a:	3b fb                	cmp    %ebx,%edi
43ee2c:	76 0b                	jbe    0x43ee39
43ee2e:	57                   	push   %edi
43ee2f:	53                   	push   %ebx
43ee30:	56                   	push   %esi
43ee31:	e8 3a 1d ff ff       	call   0x430b70
43ee36:	83 c4 0c             	add    $0xc,%esp
43ee39:	e8 6a 5b ff ff       	call   0x4349a8
43ee3e:	c7 00 2a 00 00 00    	movl   $0x2a,(%eax)
43ee44:	e8 5f 5b ff ff       	call   0x4349a8
43ee49:	8b 00                	mov    (%eax),%eax
43ee4b:	38 5d fc             	cmp    %bl,-0x4(%ebp)
43ee4e:	74 07                	je     0x43ee57
43ee50:	8b 4d f8             	mov    -0x8(%ebp),%ecx
43ee53:	83 61 70 fd          	andl   $0xfffffffd,0x70(%ecx)
43ee57:	5f                   	pop    %edi
43ee58:	5e                   	pop    %esi
43ee59:	5b                   	pop    %ebx
43ee5a:	c9                   	leave
43ee5b:	c3                   	ret
43ee5c:	3b f3                	cmp    %ebx,%esi
43ee5e:	74 26                	je     0x43ee86
43ee60:	3b fb                	cmp    %ebx,%edi
43ee62:	77 20                	ja     0x43ee84
43ee64:	e8 3f 5b ff ff       	call   0x4349a8
43ee69:	6a 22                	push   $0x22
43ee6b:	5e                   	pop    %esi
43ee6c:	89 30                	mov    %esi,(%eax)
43ee6e:	e8 fb 54 ff ff       	call   0x43436e
43ee73:	38 5d fc             	cmp    %bl,-0x4(%ebp)
43ee76:	74 85                	je     0x43edfd
43ee78:	8b 45 f8             	mov    -0x8(%ebp),%eax
43ee7b:	83 60 70 fd          	andl   $0xfffffffd,0x70(%eax)
43ee7f:	e9 79 ff ff ff       	jmp    0x43edfd
43ee84:	88 06                	mov    %al,(%esi)
43ee86:	8b 45 08             	mov    0x8(%ebp),%eax
43ee89:	3b c3                	cmp    %ebx,%eax
43ee8b:	74 06                	je     0x43ee93
43ee8d:	c7 00 01 00 00 00    	movl   $0x1,(%eax)
43ee93:	38 5d fc             	cmp    %bl,-0x4(%ebp)
43ee96:	0f 84 3c ff ff ff    	je     0x43edd8
43ee9c:	8b 45 f8             	mov    -0x8(%ebp),%eax
43ee9f:	83 60 70 fd          	andl   $0xfffffffd,0x70(%eax)
43eea3:	e9 30 ff ff ff       	jmp    0x43edd8
43eea8:	8d 4d 0c             	lea    0xc(%ebp),%ecx
43eeab:	51                   	push   %ecx
43eeac:	53                   	push   %ebx
43eead:	57                   	push   %edi
43eeae:	56                   	push   %esi
43eeaf:	6a 01                	push   $0x1
43eeb1:	8d 4d 14             	lea    0x14(%ebp),%ecx
43eeb4:	51                   	push   %ecx
43eeb5:	53                   	push   %ebx
43eeb6:	89 5d 0c             	mov    %ebx,0xc(%ebp)
43eeb9:	ff 70 04             	push   0x4(%eax)
43eebc:	ff 15 68 35 47 00    	call   *0x473568
43eec2:	3b c3                	cmp    %ebx,%eax
43eec4:	74 14                	je     0x43eeda
43eec6:	39 5d 0c             	cmp    %ebx,0xc(%ebp)
43eec9:	0f 85 6a ff ff ff    	jne    0x43ee39
43eecf:	8b 4d 08             	mov    0x8(%ebp),%ecx
43eed2:	3b cb                	cmp    %ebx,%ecx
43eed4:	74 bd                	je     0x43ee93
43eed6:	89 01                	mov    %eax,(%ecx)
43eed8:	eb b9                	jmp    0x43ee93
43eeda:	ff 15 24 34 47 00    	call   *0x473424
43eee0:	83 f8 7a             	cmp    $0x7a,%eax
43eee3:	0f 85 50 ff ff ff    	jne    0x43ee39
43eee9:	3b f3                	cmp    %ebx,%esi
43eeeb:	0f 84 73 ff ff ff    	je     0x43ee64
43eef1:	3b fb                	cmp    %ebx,%edi
43eef3:	0f 86 6b ff ff ff    	jbe    0x43ee64
43eef9:	57                   	push   %edi
43eefa:	53                   	push   %ebx
43eefb:	56                   	push   %esi
43eefc:	e8 6f 1c ff ff       	call   0x430b70
43ef01:	83 c4 0c             	add    $0xc,%esp
43ef04:	e9 5b ff ff ff       	jmp    0x43ee64
43ef09:	8b ff                	mov    %edi,%edi
43ef0b:	55                   	push   %ebp
43ef0c:	8b ec                	mov    %esp,%ebp
43ef0e:	6a 00                	push   $0x0
43ef10:	ff 75 14             	push   0x14(%ebp)
43ef13:	ff 75 10             	push   0x10(%ebp)
43ef16:	ff 75 0c             	push   0xc(%ebp)
43ef19:	ff 75 08             	push   0x8(%ebp)
43ef1c:	e8 93 fe ff ff       	call   0x43edb4
43ef21:	83 c4 14             	add    $0x14,%esp
43ef24:	5d                   	pop    %ebp
43ef25:	c3                   	ret
43ef26:	8b ff                	mov    %edi,%edi
43ef28:	55                   	push   %ebp
43ef29:	8b ec                	mov    %esp,%ebp
43ef2b:	83 ec 14             	sub    $0x14,%esp
43ef2e:	ff 75 10             	push   0x10(%ebp)
43ef31:	83 4d fc ff          	orl    $0xffffffff,-0x4(%ebp)
43ef35:	8d 4d ec             	lea    -0x14(%ebp),%ecx
43ef38:	e8 ad 1c ff ff       	call   0x430bea
43ef3d:	8d 45 ec             	lea    -0x14(%ebp),%eax
43ef40:	50                   	push   %eax
43ef41:	ff 75 0c             	push   0xc(%ebp)
43ef44:	8b 45 ec             	mov    -0x14(%ebp),%eax
43ef47:	ff b0 ac 00 00 00    	push   0xac(%eax)
43ef4d:	8d 45 fc             	lea    -0x4(%ebp),%eax
43ef50:	ff 75 08             	push   0x8(%ebp)
43ef53:	50                   	push   %eax
43ef54:	e8 5b fe ff ff       	call   0x43edb4
43ef59:	83 c4 14             	add    $0x14,%esp
43ef5c:	85 c0                	test   %eax,%eax
43ef5e:	75 05                	jne    0x43ef65
43ef60:	8b 45 fc             	mov    -0x4(%ebp),%eax
43ef63:	eb 03                	jmp    0x43ef68
43ef65:	83 c8 ff             	or     $0xffffffff,%eax
43ef68:	80 7d f8 00          	cmpb   $0x0,-0x8(%ebp)
43ef6c:	74 07                	je     0x43ef75
43ef6e:	8b 4d f4             	mov    -0xc(%ebp),%ecx
43ef71:	83 61 70 fd          	andl   $0xfffffffd,0x70(%ecx)
43ef75:	c9                   	leave
43ef76:	c3                   	ret
43ef77:	8b ff                	mov    %edi,%edi
43ef79:	55                   	push   %ebp
43ef7a:	8b ec                	mov    %esp,%ebp
43ef7c:	51                   	push   %ecx
43ef7d:	83 4d fc ff          	orl    $0xffffffff,-0x4(%ebp)
43ef81:	6a 00                	push   $0x0
43ef83:	ff 75 0c             	push   0xc(%ebp)
43ef86:	e8 7c 56 00 00       	call   0x444607
43ef8b:	50                   	push   %eax
43ef8c:	ff 75 08             	push   0x8(%ebp)
43ef8f:	8d 45 fc             	lea    -0x4(%ebp),%eax
43ef92:	50                   	push   %eax
43ef93:	e8 1c fe ff ff       	call   0x43edb4
43ef98:	83 c4 14             	add    $0x14,%esp
43ef9b:	85 c0                	test   %eax,%eax
43ef9d:	75 05                	jne    0x43efa4
43ef9f:	8b 45 fc             	mov    -0x4(%ebp),%eax
43efa2:	c9                   	leave
43efa3:	c3                   	ret
43efa4:	83 c8 ff             	or     $0xffffffff,%eax
43efa7:	c9                   	leave
43efa8:	c3                   	ret
43efa9:	8b ff                	mov    %edi,%edi
43efab:	55                   	push   %ebp
43efac:	8b ec                	mov    %esp,%ebp
43efae:	83 ec 10             	sub    $0x10,%esp
43efb1:	ff 75 0c             	push   0xc(%ebp)
43efb4:	8d 4d f0             	lea    -0x10(%ebp),%ecx
43efb7:	e8 2e 1c ff ff       	call   0x430bea