47cb7a:	33 c5                	xor    %ebp,%eax
47cb7c:	89 45 fc             	mov    %eax,-0x4(%ebp)
47cb7f:	8b 45 0c             	mov    0xc(%ebp),%eax
47cb82:	89 45 e0             	mov    %eax,-0x20(%ebp)
47cb85:	56                   	push   %esi
47cb86:	8b 75 08             	mov    0x8(%ebp),%esi
47cb89:	85 c0                	test   %eax,%eax
47cb8b:	75 14                	jne    0x47cba1
47cb8d:	e8 9d 02 fd ff       	call   0x44ce2f
47cb92:	6a 16                	push   $0x16
47cb94:	5e                   	pop    %esi
47cb95:	89 30                	mov    %esi,(%eax)
47cb97:	e8 3a 01 fd ff       	call   0x44ccd6
47cb9c:	e9 cd 01 00 00       	jmp    0x47cd6e
47cba1:	53                   	push   %ebx
47cba2:	57                   	push   %edi
47cba3:	33 ff                	xor    %edi,%edi
47cba5:	89 38                	mov    %edi,(%eax)
47cba7:	8b df                	mov    %edi,%ebx
47cba9:	8b cf                	mov    %edi,%ecx
47cbab:	89 5d d4             	mov    %ebx,-0x2c(%ebp)
47cbae:	89 4d d8             	mov    %ecx,-0x28(%ebp)
47cbb1:	89 7d dc             	mov    %edi,-0x24(%ebp)
47cbb4:	39 3e                	cmp    %edi,(%esi)
47cbb6:	74 5e                	je     0x47cc16
47cbb8:	6a 2a                	push   $0x2a
47cbba:	58                   	pop    %eax
47cbbb:	66 89 45 f4          	mov    %ax,-0xc(%ebp)
47cbbf:	6a 3f                	push   $0x3f
47cbc1:	58                   	pop    %eax
47cbc2:	66 89 45 f6          	mov    %ax,-0xa(%ebp)
47cbc6:	33 c0                	xor    %eax,%eax
47cbc8:	66 89 45 f8          	mov    %ax,-0x8(%ebp)
47cbcc:	8d 45 f4             	lea    -0xc(%ebp),%eax
47cbcf:	50                   	push   %eax
47cbd0:	ff 36                	push   (%esi)
47cbd2:	e8 06 39 00 00       	call   0x4804dd
47cbd7:	59                   	pop    %ecx
47cbd8:	59                   	pop    %ecx
47cbd9:	85 c0                	test   %eax,%eax
47cbdb:	75 12                	jne    0x47cbef
47cbdd:	8d 45 d4             	lea    -0x2c(%ebp),%eax
47cbe0:	50                   	push   %eax
47cbe1:	57                   	push   %edi
47cbe2:	57                   	push   %edi
47cbe3:	ff 36                	push   (%esi)
47cbe5:	e8 54 02 00 00       	call   0x47ce3e
47cbea:	83 c4 10             	add    $0x10,%esp
47cbed:	eb 0f                	jmp    0x47cbfe
47cbef:	8d 4d d4             	lea    -0x2c(%ebp),%ecx
47cbf2:	51                   	push   %ecx
47cbf3:	50                   	push   %eax
47cbf4:	ff 36                	push   (%esi)
47cbf6:	e8 7e 04 00 00       	call   0x47d079
47cbfb:	83 c4 0c             	add    $0xc,%esp
47cbfe:	89 45 f0             	mov    %eax,-0x10(%ebp)
47cc01:	85 c0                	test   %eax,%eax
47cc03:	0f 85 85 00 00 00    	jne    0x47cc8e
47cc09:	83 c6 04             	add    $0x4,%esi
47cc0c:	39 3e                	cmp    %edi,(%esi)
47cc0e:	75 a8                	jne    0x47cbb8
47cc10:	8b 5d d4             	mov    -0x2c(%ebp),%ebx
47cc13:	8b 4d d8             	mov    -0x28(%ebp),%ecx
47cc16:	8b c1                	mov    %ecx,%eax
47cc18:	89 7d f0             	mov    %edi,-0x10(%ebp)
47cc1b:	2b c3                	sub    %ebx,%eax
47cc1d:	89 5d ec             	mov    %ebx,-0x14(%ebp)
47cc20:	8b d0                	mov    %eax,%edx
47cc22:	83 c0 03             	add    $0x3,%eax
47cc25:	c1 fa 02             	sar    $0x2,%edx
47cc28:	42                   	inc    %edx
47cc29:	c1 e8 02             	shr    $0x2,%eax
47cc2c:	3b cb                	cmp    %ebx,%ecx
47cc2e:	89 55 e8             	mov    %edx,-0x18(%ebp)
47cc31:	1b f6                	sbb    %esi,%esi
47cc33:	f7 d6                	not    %esi
47cc35:	23 f0                	and    %eax,%esi
47cc37:	74 36                	je     0x47cc6f
47cc39:	8b c3                	mov    %ebx,%eax
47cc3b:	8b d7                	mov    %edi,%edx
47cc3d:	8b 08                	mov    (%eax),%ecx
47cc3f:	8d 41 02             	lea    0x2(%ecx),%eax
47cc42:	89 45 e4             	mov    %eax,-0x1c(%ebp)
47cc45:	66 8b 01             	mov    (%ecx),%ax
47cc48:	83 c1 02             	add    $0x2,%ecx
47cc4b:	66 3b c7             	cmp    %di,%ax
47cc4e:	75 f5                	jne    0x47cc45
47cc50:	2b 4d e4             	sub    -0x1c(%ebp),%ecx
47cc53:	8b 45 f0             	mov    -0x10(%ebp),%eax
47cc56:	40                   	inc    %eax
47cc57:	d1 f9                	sar    $1,%ecx
47cc59:	03 c1                	add    %ecx,%eax
47cc5b:	89 45 f0             	mov    %eax,-0x10(%ebp)
47cc5e:	8b 45 ec             	mov    -0x14(%ebp),%eax
47cc61:	83 c0 04             	add    $0x4,%eax
47cc64:	42                   	inc    %edx
47cc65:	89 45 ec             	mov    %eax,-0x14(%ebp)
47cc68:	3b d6                	cmp    %esi,%edx
47cc6a:	75 d1                	jne    0x47cc3d
47cc6c:	8b 55 e8             	mov    -0x18(%ebp),%edx
47cc6f:	6a 02                	push   $0x2
47cc71:	ff 75 f0             	push   -0x10(%ebp)
47cc74:	52                   	push   %edx
47cc75:	e8 3a fe fe ff       	call   0x46cab4
47cc7a:	8b f0                	mov    %eax,%esi
47cc7c:	83 c4 0c             	add    $0xc,%esp
47cc7f:	85 f6                	test   %esi,%esi
47cc81:	75 16                	jne    0x47cc99
47cc83:	83 ce ff             	or     $0xffffffff,%esi
47cc86:	89 75 f0             	mov    %esi,-0x10(%ebp)
47cc89:	e9 99 00 00 00       	jmp    0x47cd27
47cc8e:	8b 5d d4             	mov    -0x2c(%ebp),%ebx
47cc91:	8b 75 f0             	mov    -0x10(%ebp),%esi
47cc94:	e9 95 00 00 00       	jmp    0x47cd2e
47cc99:	8b 45 e8             	mov    -0x18(%ebp),%eax
47cc9c:	89 5d ec             	mov    %ebx,-0x14(%ebp)
47cc9f:	8d 04 86             	lea    (%esi,%eax,4),%eax
47cca2:	8b d0                	mov    %eax,%edx
47cca4:	89 45 cc             	mov    %eax,-0x34(%ebp)
47cca7:	8b c3                	mov    %ebx,%eax
47cca9:	89 55 e8             	mov    %edx,-0x18(%ebp)
47ccac:	3b 5d d8             	cmp    -0x28(%ebp),%ebx
47ccaf:	74 6c                	je     0x47cd1d
47ccb1:	8b ce                	mov    %esi,%ecx
47ccb3:	2b cb                	sub    %ebx,%ecx
47ccb5:	89 4d f4             	mov    %ecx,-0xc(%ebp)
47ccb8:	8b 00                	mov    (%eax),%eax
47ccba:	8b c8                	mov    %eax,%ecx
47ccbc:	89 45 d0             	mov    %eax,-0x30(%ebp)
47ccbf:	8d 41 02             	lea    0x2(%ecx),%eax
47ccc2:	89 45 e4             	mov    %eax,-0x1c(%ebp)
47ccc5:	66 8b 01             	mov    (%ecx),%ax
47ccc8:	83 c1 02             	add    $0x2,%ecx
47cccb:	66 3b c7             	cmp    %di,%ax
47ccce:	75 f5                	jne    0x47ccc5
47ccd0:	2b 4d e4             	sub    -0x1c(%ebp),%ecx
47ccd3:	d1 f9                	sar    $1,%ecx
47ccd5:	8d 41 01             	lea    0x1(%ecx),%eax
47ccd8:	8b ca                	mov    %edx,%ecx
47ccda:	2b 4d cc             	sub    -0x34(%ebp),%ecx
47ccdd:	50                   	push   %eax
47ccde:	ff 75 d0             	push   -0x30(%ebp)
47cce1:	89 45 e4             	mov    %eax,-0x1c(%ebp)
47cce4:	8b 45 f0             	mov    -0x10(%ebp),%eax
47cce7:	d1 f9                	sar    $1,%ecx
47cce9:	2b c1                	sub    %ecx,%eax
47cceb:	50                   	push   %eax
47ccec:	52                   	push   %edx
47cced:	e8 e0 22 00 00       	call   0x47efd2
47ccf2:	83 c4 10             	add    $0x10,%esp
47ccf5:	85 c0                	test   %eax,%eax
47ccf7:	0f 85 82 00 00 00    	jne    0x47cd7f
47ccfd:	8b 45 ec             	mov    -0x14(%ebp),%eax
47cd00:	8b 4d f4             	mov    -0xc(%ebp),%ecx
47cd03:	8b 55 e8             	mov    -0x18(%ebp),%edx
47cd06:	89 14 01             	mov    %edx,(%ecx,%eax,1)
47cd09:	83 c0 04             	add    $0x4,%eax
47cd0c:	8b 4d e4             	mov    -0x1c(%ebp),%ecx
47cd0f:	89 45 ec             	mov    %eax,-0x14(%ebp)
47cd12:	8d 14 4a             	lea    (%edx,%ecx,2),%edx
47cd15:	89 55 e8             	mov    %edx,-0x18(%ebp)
47cd18:	3b 45 d8             	cmp    -0x28(%ebp),%eax
47cd1b:	75 9b                	jne    0x47ccb8
47cd1d:	8b 45 e0             	mov    -0x20(%ebp),%eax
47cd20:	89 7d f0             	mov    %edi,-0x10(%ebp)
47cd23:	89 30                	mov    %esi,(%eax)
47cd25:	8b f7                	mov    %edi,%esi
47cd27:	57                   	push   %edi
47cd28:	e8 0c 56 ff ff       	call   0x472339
47cd2d:	59                   	pop    %ecx
47cd2e:	8b 45 d8             	mov    -0x28(%ebp),%eax
47cd31:	2b c3                	sub    %ebx,%eax
47cd33:	89 5d f4             	mov    %ebx,-0xc(%ebp)
47cd36:	83 c0 03             	add    $0x3,%eax
47cd39:	c1 e8 02             	shr    $0x2,%eax
47cd3c:	39 5d d8             	cmp    %ebx,-0x28(%ebp)
47cd3f:	1b c9                	sbb    %ecx,%ecx
47cd41:	f7 d1                	not    %ecx
47cd43:	23 c8                	and    %eax,%ecx
47cd45:	89 4d e0             	mov    %ecx,-0x20(%ebp)
47cd48:	74 1b                	je     0x47cd65
47cd4a:	8b 75 f4             	mov    -0xc(%ebp),%esi
47cd4d:	8b d9                	mov    %ecx,%ebx
47cd4f:	ff 36                	push   (%esi)
47cd51:	e8 e3 55 ff ff       	call   0x472339
47cd56:	47                   	inc    %edi
47cd57:	8d 76 04             	lea    0x4(%esi),%esi
47cd5a:	59                   	pop    %ecx
47cd5b:	3b fb                	cmp    %ebx,%edi
47cd5d:	75 f0                	jne    0x47cd4f
47cd5f:	8b 5d d4             	mov    -0x2c(%ebp),%ebx
47cd62:	8b 75 f0             	mov    -0x10(%ebp),%esi
47cd65:	53                   	push   %ebx
47cd66:	e8 ce 55 ff ff       	call   0x472339
47cd6b:	59                   	pop    %ecx
47cd6c:	5f                   	pop    %edi
47cd6d:	5b                   	pop    %ebx
47cd6e:	8b 4d fc             	mov    -0x4(%ebp),%ecx
47cd71:	8b c6                	mov    %esi,%eax
47cd73:	33 cd                	xor    %ebp,%ecx
47cd75:	5e                   	pop    %esi
47cd76:	e8 87 2c fc ff       	call   0x43fa02
47cd7b:	8b e5                	mov    %ebp,%esp
47cd7d:	5d                   	pop    %ebp
47cd7e:	c3                   	ret
47cd7f:	57                   	push   %edi
47cd80:	57                   	push   %edi
47cd81:	57                   	push   %edi
47cd82:	57                   	push   %edi
47cd83:	57                   	push   %edi
47cd84:	e8 7a ff fc ff       	call   0x44cd03
47cd89:	cc                   	int3
47cd8a:	8b ff                	mov    %edi,%edi
47cd8c:	55                   	push   %ebp
47cd8d:	8b ec                	mov    %esp,%ebp
47cd8f:	51                   	push   %ecx
47cd90:	8b 4d 08             	mov    0x8(%ebp),%ecx
47cd93:	8d 51 01             	lea    0x1(%ecx),%edx
47cd96:	8a 01                	mov    (%ecx),%al
47cd98:	41                   	inc    %ecx
47cd99:	84 c0                	test   %al,%al
47cd9b:	75 f9                	jne    0x47cd96
47cd9d:	2b ca                	sub    %edx,%ecx
47cd9f:	83 c8 ff             	or     $0xffffffff,%eax
47cda2:	57                   	push   %edi
47cda3:	8b 7d 10             	mov    0x10(%ebp),%edi
47cda6:	41                   	inc    %ecx
47cda7:	2b c7                	sub    %edi,%eax
47cda9:	89 4d fc             	mov    %ecx,-0x4(%ebp)
47cdac:	3b c8                	cmp    %eax,%ecx
47cdae:	76 05                	jbe    0x47cdb5
47cdb0:	6a 0c                	push   $0xc
47cdb2:	58                   	pop    %eax
47cdb3:	eb 77                	jmp    0x47ce2c
47cdb5:	53                   	push   %ebx
47cdb6:	56                   	push   %esi
47cdb7:	8d 5f 01             	lea    0x1(%edi),%ebx
47cdba:	03 d9                	add    %ecx,%ebx
47cdbc:	6a 01                	push   $0x1
47cdbe:	53                   	push   %ebx
47cdbf:	e8 8f 54 ff ff       	call   0x472253
47cdc4:	8b f0                	mov    %eax,%esi
47cdc6:	59                   	pop    %ecx
47cdc7:	59                   	pop    %ecx
47cdc8:	85 ff                	test   %edi,%edi
47cdca:	74 12                	je     0x47cdde
47cdcc:	57                   	push   %edi
47cdcd:	ff 75 0c             	push   0xc(%ebp)
47cdd0:	53                   	push   %ebx
47cdd1:	56                   	push   %esi
47cdd2:	e8 b6 da ff ff       	call   0x47a88d
47cdd7:	83 c4 10             	add    $0x10,%esp
47cdda:	85 c0                	test   %eax,%eax
47cddc:	75 53                	jne    0x47ce31
47cdde:	ff 75 fc             	push   -0x4(%ebp)
47cde1:	2b df                	sub    %edi,%ebx
47cde3:	8d 04 3e             	lea    (%esi,%edi,1),%eax
47cde6:	ff 75 08             	push   0x8(%ebp)
47cde9:	53                   	push   %ebx
47cdea:	50                   	push   %eax
47cdeb:	e8 9d da ff ff       	call   0x47a88d
47cdf0:	83 c4 10             	add    $0x10,%esp
47cdf3:	85 c0                	test   %eax,%eax
47cdf5:	75 3a                	jne    0x47ce31
47cdf7:	8b 5d 14             	mov    0x14(%ebp),%ebx
47cdfa:	8b cb                	mov    %ebx,%ecx
47cdfc:	e8 6f 07 00 00       	call   0x47d570
47ce01:	33 ff                	xor    %edi,%edi
47ce03:	89 45 fc             	mov    %eax,-0x4(%ebp)
47ce06:	85 c0                	test   %eax,%eax
47ce08:	74 0c                	je     0x47ce16
47ce0a:	56                   	push   %esi
47ce0b:	e8 29 55 ff ff       	call   0x472339
47ce10:	8b 75 fc             	mov    -0x4(%ebp),%esi
47ce13:	59                   	pop    %ecx
47ce14:	eb 0b                	jmp    0x47ce21
47ce16:	8b 43 04             	mov    0x4(%ebx),%eax
47ce19:	89 30                	mov    %esi,(%eax)
47ce1b:	8b f7                	mov    %edi,%esi
47ce1d:	83 43 04 04          	addl   $0x4,0x4(%ebx)
47ce21:	57                   	push   %edi
47ce22:	e8 12 55 ff ff       	call   0x472339
47ce27:	59                   	pop    %ecx
47ce28:	8b c6                	mov    %esi,%eax
47ce2a:	5e                   	pop    %esi
47ce2b:	5b                   	pop    %ebx
47ce2c:	5f                   	pop    %edi
47ce2d:	8b e5                	mov    %ebp,%esp
47ce2f:	5d                   	pop    %ebp
47ce30:	c3                   	ret
47ce31:	33 ff                	xor    %edi,%edi
47ce33:	57                   	push   %edi
47ce34:	57                   	push   %edi
47ce35:	57                   	push   %edi
47ce36:	57                   	push   %edi
47ce37:	57                   	push   %edi
47ce38:	e8 c6 fe fc ff       	call   0x44cd03
47ce3d:	cc                   	int3
47ce3e:	8b ff                	mov    %edi,%edi
47ce40:	55                   	push   %ebp
47ce41:	8b ec                	mov    %esp,%ebp
47ce43:	51                   	push   %ecx
47ce44:	8b 4d 08             	mov    0x8(%ebp),%ecx
47ce47:	53                   	push   %ebx
47ce48:	57                   	push   %edi
47ce49:	33 db                	xor    %ebx,%ebx
47ce4b:	8d 51 02             	lea    0x2(%ecx),%edx
47ce4e:	66 8b 01             	mov    (%ecx),%ax
47ce51:	83 c1 02             	add    $0x2,%ecx
47ce54:	66 3b c3             	cmp    %bx,%ax
47ce57:	75 f5                	jne    0x47ce4e
47ce59:	8b 7d 10             	mov    0x10(%ebp),%edi
47ce5c:	2b ca                	sub    %edx,%ecx
47ce5e:	d1 f9                	sar    $1,%ecx
47ce60:	83 c8 ff             	or     $0xffffffff,%eax
47ce63:	41                   	inc    %ecx
47ce64:	2b c7                	sub    %edi,%eax
47ce66:	89 4d fc             	mov    %ecx,-0x4(%ebp)
47ce69:	3b c8                	cmp    %eax,%ecx
47ce6b:	76 05                	jbe    0x47ce72
47ce6d:	6a 0c                	push   $0xc
47ce6f:	58                   	pop    %eax
47ce70:	eb 70                	jmp    0x47cee2
47ce72:	56                   	push   %esi
47ce73:	8d 5f 01             	lea    0x1(%edi),%ebx
47ce76:	03 d9                	add    %ecx,%ebx
47ce78:	6a 02                	push   $0x2
47ce7a:	53                   	push   %ebx
47ce7b:	e8 d3 53 ff ff       	call   0x472253
47ce80:	8b f0                	mov    %eax,%esi
47ce82:	59                   	pop    %ecx
47ce83:	59                   	pop    %ecx
47ce84:	85 ff                	test   %edi,%edi
47ce86:	74 12                	je     0x47ce9a
47ce88:	57                   	push   %edi
47ce89:	ff 75 0c             	push   0xc(%ebp)
47ce8c:	53                   	push   %ebx
47ce8d:	56                   	push   %esi
47ce8e:	e8 3f 21 00 00       	call   0x47efd2
47ce93:	83 c4 10             	add    $0x10,%esp
47ce96:	85 c0                	test   %eax,%eax
47ce98:	75 4e                	jne    0x47cee8
47ce9a:	ff 75 fc             	push   -0x4(%ebp)
47ce9d:	2b df                	sub    %edi,%ebx
47ce9f:	8d 04 7e             	lea    (%esi,%edi,2),%eax
47cea2:	ff 75 08             	push   0x8(%ebp)
47cea5:	53                   	push   %ebx
47cea6:	50                   	push   %eax
47cea7:	e8 26 21 00 00       	call   0x47efd2
47ceac:	83 c4 10             	add    $0x10,%esp