46bbf2:	5e                   	pop    %esi
46bbf3:	c2 04 00             	ret    $0x4
46bbf6:	b9 60 a8 4a 00       	mov    $0x4aa860,%ecx
46bbfb:	e8 dd c0 ff ff       	call   0x467cdd
46bc00:	68 0c bc 46 00       	push   $0x46bc0c
46bc05:	e8 3b b9 fa ff       	call   0x417545
46bc0a:	59                   	pop    %ecx
46bc0b:	c3                   	ret
46bc0c:	b9 60 a8 4a 00       	mov    $0x4aa860,%ecx
46bc11:	e9 00 c1 ff ff       	jmp    0x467d16
46bc16:	55                   	push   %ebp
46bc17:	8b ec                	mov    %esp,%ebp
46bc19:	81 ec 18 01 00 00    	sub    $0x118,%esp
46bc1f:	81 7d 0c 00 08 00 00 	cmpl   $0x800,0xc(%ebp)
46bc26:	a1 40 8b 4a 00       	mov    0x4a8b40,%eax
46bc2b:	89 45 fc             	mov    %eax,-0x4(%ebp)
46bc2e:	8d 45 0c             	lea    0xc(%ebp),%eax
46bc31:	75 41                	jne    0x46bc74
46bc33:	68 f8 a4 48 00       	push   $0x48a4f8
46bc38:	50                   	push   %eax
46bc39:	ff 15 04 03 4b 00    	call   *0x4b0304
46bc3f:	56                   	push   %esi
46bc40:	8d 45 0c             	lea    0xc(%ebp),%eax
46bc43:	50                   	push   %eax
46bc44:	ff 75 08             	push   0x8(%ebp)
46bc47:	be 12 01 00 00       	mov    $0x112,%esi
46bc4c:	8d 85 e8 fe ff ff    	lea    -0x118(%ebp),%eax
46bc52:	56                   	push   %esi
46bc53:	50                   	push   %eax
46bc54:	e8 55 c9 fa ff       	call   0x4185ae
46bc59:	83 c4 10             	add    $0x10,%esp
46bc5c:	83 f8 ff             	cmp    $0xffffffff,%eax
46bc5f:	74 27                	je     0x46bc88
46bc61:	3b c6                	cmp    %esi,%eax
46bc63:	73 23                	jae    0x46bc88
46bc65:	8d 85 e8 fe ff ff    	lea    -0x118(%ebp),%eax
46bc6b:	50                   	push   %eax
46bc6c:	ff 15 1c 03 4b 00    	call   *0x4b031c
46bc72:	eb 16                	jmp    0x46bc8a
46bc74:	6a 04                	push   $0x4
46bc76:	50                   	push   %eax
46bc77:	6a 03                	push   $0x3
46bc79:	ff 75 0c             	push   0xc(%ebp)
46bc7c:	ff 15 b0 03 4b 00    	call   *0x4b03b0
46bc82:	85 c0                	test   %eax,%eax
46bc84:	75 b9                	jne    0x46bc3f
46bc86:	eb 03                	jmp    0x46bc8b
46bc88:	33 c0                	xor    %eax,%eax
46bc8a:	5e                   	pop    %esi
46bc8b:	8b 4d fc             	mov    -0x4(%ebp),%ecx
46bc8e:	e8 4b bf fa ff       	call   0x417bde
46bc93:	c9                   	leave
46bc94:	c3                   	ret
46bc95:	8b 44 24 14          	mov    0x14(%esp),%eax
46bc99:	85 c0                	test   %eax,%eax
46bc9b:	74 0b                	je     0x46bca8
46bc9d:	66 8b 4c 24 10       	mov    0x10(%esp),%cx
46bca2:	66 89 08             	mov    %cx,(%eax)
46bca5:	33 c0                	xor    %eax,%eax
46bca7:	40                   	inc    %eax
46bca8:	c2 14 00             	ret    $0x14
46bcab:	55                   	push   %ebp
46bcac:	8b ec                	mov    %esp,%ebp
46bcae:	83 ec 3c             	sub    $0x3c,%esp
46bcb1:	a1 40 8b 4a 00       	mov    0x4a8b40,%eax
46bcb6:	53                   	push   %ebx
46bcb7:	56                   	push   %esi
46bcb8:	57                   	push   %edi
46bcb9:	8b 3d f4 02 4b 00    	mov    0x4b02f4,%edi
46bcbf:	33 db                	xor    %ebx,%ebx
46bcc1:	68 6c a5 48 00       	push   $0x48a56c
46bcc6:	89 45 fc             	mov    %eax,-0x4(%ebp)
46bcc9:	89 5d e8             	mov    %ebx,-0x18(%ebp)
46bccc:	33 f6                	xor    %esi,%esi
46bcce:	ff d7                	call   *%edi
46bcd0:	68 50 a5 48 00       	push   $0x48a550
46bcd5:	50                   	push   %eax
46bcd6:	89 45 e0             	mov    %eax,-0x20(%ebp)
46bcd9:	ff 15 f8 02 4b 00    	call   *0x4b02f8
46bcdf:	3b c3                	cmp    %ebx,%eax
46bce1:	74 6a                	je     0x46bd4d
46bce3:	ff d0                	call   *%eax
46bce5:	8b 35 fc 02 4b 00    	mov    0x4b02fc,%esi
46bceb:	bb ff 03 00 00       	mov    $0x3ff,%ebx
46bcf0:	bf 00 fc 00 00       	mov    $0xfc00,%edi
46bcf5:	89 45 e8             	mov    %eax,-0x18(%ebp)
46bcf8:	0f b7 c0             	movzwl %ax,%eax
46bcfb:	8b c8                	mov    %eax,%ecx
46bcfd:	23 cb                	and    %ebx,%ecx
46bcff:	0f b7 c9             	movzwl %cx,%ecx
46bd02:	23 c7                	and    %edi,%eax
46bd04:	0b c1                	or     %ecx,%eax
46bd06:	50                   	push   %eax
46bd07:	89 4d e4             	mov    %ecx,-0x1c(%ebp)
46bd0a:	ff d6                	call   *%esi
46bd0c:	ff 75 e4             	push   -0x1c(%ebp)
46bd0f:	89 45 c4             	mov    %eax,-0x3c(%ebp)
46bd12:	ff d6                	call   *%esi
46bd14:	68 34 a5 48 00       	push   $0x48a534
46bd19:	ff 75 e0             	push   -0x20(%ebp)
46bd1c:	89 45 c8             	mov    %eax,-0x38(%ebp)
46bd1f:	ff 15 f8 02 4b 00    	call   *0x4b02f8
46bd25:	ff d0                	call   *%eax
46bd27:	89 45 e8             	mov    %eax,-0x18(%ebp)
46bd2a:	0f b7 c0             	movzwl %ax,%eax
46bd2d:	8b c8                	mov    %eax,%ecx
46bd2f:	23 cb                	and    %ebx,%ecx
46bd31:	0f b7 d9             	movzwl %cx,%ebx
46bd34:	23 c7                	and    %edi,%eax
46bd36:	0b c3                	or     %ebx,%eax
46bd38:	50                   	push   %eax
46bd39:	ff d6                	call   *%esi
46bd3b:	53                   	push   %ebx
46bd3c:	89 45 cc             	mov    %eax,-0x34(%ebp)
46bd3f:	ff d6                	call   *%esi
46bd41:	89 45 d0             	mov    %eax,-0x30(%ebp)
46bd44:	6a 04                	push   $0x4
46bd46:	33 db                	xor    %ebx,%ebx
46bd48:	e9 02 01 00 00       	jmp    0x46be4f
46bd4d:	ff 15 98 03 4b 00    	call   *0x4b0398
46bd53:	85 c0                	test   %eax,%eax
46bd55:	0f 89 a2 00 00 00    	jns    0x46bdfd
46bd5b:	8d 45 e4             	lea    -0x1c(%ebp),%eax
46bd5e:	50                   	push   %eax
46bd5f:	68 19 00 02 00       	push   $0x20019
46bd64:	53                   	push   %ebx
46bd65:	68 0c a5 48 00       	push   $0x48a50c
46bd6a:	68 01 00 00 80       	push   $0x80000001
46bd6f:	89 5d e4             	mov    %ebx,-0x1c(%ebp)
46bd72:	ff 15 8c fe 4a 00    	call   *0x4afe8c
46bd78:	85 c0                	test   %eax,%eax
46bd7a:	0f 85 d0 00 00 00    	jne    0x46be50
46bd80:	8d 45 e0             	lea    -0x20(%ebp),%eax
46bd83:	50                   	push   %eax
46bd84:	8d 45 ec             	lea    -0x14(%ebp),%eax
46bd87:	50                   	push   %eax
46bd88:	8d 45 dc             	lea    -0x24(%ebp),%eax
46bd8b:	50                   	push   %eax
46bd8c:	53                   	push   %ebx
46bd8d:	53                   	push   %ebx
46bd8e:	ff 75 e4             	push   -0x1c(%ebp)
46bd91:	c7 45 e0 10 00 00 00 	movl   $0x10,-0x20(%ebp)
46bd98:	ff 15 88 fe 4a 00    	call   *0x4afe88
46bd9e:	85 c0                	test   %eax,%eax
46bda0:	75 50                	jne    0x46bdf2
46bda2:	83 7d dc 01          	cmpl   $0x1,-0x24(%ebp)
46bda6:	75 4a                	jne    0x46bdf2
46bda8:	8d 45 d8             	lea    -0x28(%ebp),%eax
46bdab:	50                   	push   %eax
46bdac:	8d 45 ec             	lea    -0x14(%ebp),%eax
46bdaf:	68 08 a5 48 00       	push   $0x48a508
46bdb4:	50                   	push   %eax
46bdb5:	e8 4b c8 fa ff       	call   0x418605
46bdba:	83 c4 0c             	add    $0xc,%esp
46bdbd:	83 f8 01             	cmp    $0x1,%eax
46bdc0:	75 30                	jne    0x46bdf2
46bdc2:	8b 45 d8             	mov    -0x28(%ebp),%eax
46bdc5:	8b 35 fc 02 4b 00    	mov    0x4b02fc,%esi
46bdcb:	89 45 e8             	mov    %eax,-0x18(%ebp)
46bdce:	0f b7 c0             	movzwl %ax,%eax
46bdd1:	8b c8                	mov    %eax,%ecx
46bdd3:	81 e1 ff 03 00 00    	and    $0x3ff,%ecx
46bdd9:	0f b7 f9             	movzwl %cx,%edi
46bddc:	25 00 fc 00 00       	and    $0xfc00,%eax
46bde1:	0b c7                	or     %edi,%eax
46bde3:	50                   	push   %eax
46bde4:	ff d6                	call   *%esi
46bde6:	57                   	push   %edi
46bde7:	89 45 c4             	mov    %eax,-0x3c(%ebp)
46bdea:	ff d6                	call   *%esi
46bdec:	6a 02                	push   $0x2
46bdee:	89 45 c8             	mov    %eax,-0x38(%ebp)
46bdf1:	5e                   	pop    %esi
46bdf2:	ff 75 e4             	push   -0x1c(%ebp)
46bdf5:	ff 15 ac fe 4a 00    	call   *0x4afeac
46bdfb:	eb 53                	jmp    0x46be50
46bdfd:	68 fc a4 48 00       	push   $0x48a4fc
46be02:	ff d7                	call   *%edi
46be04:	3b c3                	cmp    %ebx,%eax
46be06:	74 48                	je     0x46be50
46be08:	8d 4d e8             	lea    -0x18(%ebp),%ecx
46be0b:	51                   	push   %ecx
46be0c:	68 95 bc 46 00       	push   $0x46bc95
46be11:	6a 01                	push   $0x1
46be13:	6a 10                	push   $0x10
46be15:	50                   	push   %eax
46be16:	89 5d e8             	mov    %ebx,-0x18(%ebp)
46be19:	ff 15 00 03 4b 00    	call   *0x4b0300
46be1f:	66 39 5d e8          	cmp    %bx,-0x18(%ebp)
46be23:	74 2b                	je     0x46be50
46be25:	0f b7 45 e8          	movzwl -0x18(%ebp),%eax
46be29:	8b 35 fc 02 4b 00    	mov    0x4b02fc,%esi
46be2f:	8b c8                	mov    %eax,%ecx
46be31:	81 e1 ff 03 00 00    	and    $0x3ff,%ecx
46be37:	0f b7 f9             	movzwl %cx,%edi
46be3a:	25 00 fc 00 00       	and    $0xfc00,%eax
46be3f:	0b c7                	or     %edi,%eax
46be41:	50                   	push   %eax
46be42:	ff d6                	call   *%esi
46be44:	57                   	push   %edi
46be45:	89 45 c4             	mov    %eax,-0x3c(%ebp)
46be48:	ff d6                	call   *%esi
46be4a:	89 45 c8             	mov    %eax,-0x38(%ebp)
46be4d:	6a 02                	push   $0x2
46be4f:	5e                   	pop    %esi
46be50:	c7 44 b5 c4 00 08 00 	movl   $0x800,-0x3c(%ebp,%esi,4)
46be57:	00
46be58:	46                   	inc    %esi
46be59:	33 ff                	xor    %edi,%edi
46be5b:	3b f3                	cmp    %ebx,%esi
46be5d:	7e 17                	jle    0x46be76
46be5f:	ff 74 bd c4          	push   -0x3c(%ebp,%edi,4)
46be63:	ff 75 08             	push   0x8(%ebp)
46be66:	e8 ab fd ff ff       	call   0x46bc16
46be6b:	3b c3                	cmp    %ebx,%eax
46be6d:	59                   	pop    %ecx
46be6e:	59                   	pop    %ecx
46be6f:	75 07                	jne    0x46be78
46be71:	47                   	inc    %edi
46be72:	3b fe                	cmp    %esi,%edi
46be74:	7c e9                	jl     0x46be5f
46be76:	33 c0                	xor    %eax,%eax
46be78:	8b 4d fc             	mov    -0x4(%ebp),%ecx
46be7b:	5f                   	pop    %edi
46be7c:	5e                   	pop    %esi
46be7d:	5b                   	pop    %ebx
46be7e:	e8 5b bd fa ff       	call   0x417bde
46be83:	c9                   	leave
46be84:	c2 04 00             	ret    $0x4
46be87:	55                   	push   %ebp
46be88:	8b ec                	mov    %esp,%ebp
46be8a:	83 ec 14             	sub    $0x14,%esp
46be8d:	53                   	push   %ebx
46be8e:	57                   	push   %edi
46be8f:	33 ff                	xor    %edi,%edi
46be91:	89 b9 9c 00 00 00    	mov    %edi,0x9c(%ecx)
46be97:	39 3d f8 75 4a 00    	cmp    %edi,0x4a75f8
46be9d:	89 4d f0             	mov    %ecx,-0x10(%ebp)
46bea0:	89 7d fc             	mov    %edi,-0x4(%ebp)
46bea3:	89 7d f8             	mov    %edi,-0x8(%ebp)
46bea6:	c7 45 ec 04 00 00 00 	movl   $0x4,-0x14(%ebp)
46bead:	89 7d f4             	mov    %edi,-0xc(%ebp)
46beb0:	bb f8 75 4a 00       	mov    $0x4a75f8,%ebx
46beb5:	0f 84 88 00 00 00    	je     0x46bf43
46bebb:	56                   	push   %esi
46bebc:	8d 45 fc             	lea    -0x4(%ebp),%eax
46bebf:	50                   	push   %eax
46bec0:	6a 01                	push   $0x1
46bec2:	57                   	push   %edi
46bec3:	ff 33                	push   (%ebx)
46bec5:	68 01 00 00 80       	push   $0x80000001
46beca:	ff 15 8c fe 4a 00    	call   *0x4afe8c
46bed0:	85 c0                	test   %eax,%eax
46bed2:	75 57                	jne    0x46bf2b
46bed4:	8b 73 04             	mov    0x4(%ebx),%esi
46bed7:	eb 4c                	jmp    0x46bf25
46bed9:	8d 4d ec             	lea    -0x14(%ebp),%ecx
46bedc:	51                   	push   %ecx
46bedd:	8d 4d f8             	lea    -0x8(%ebp),%ecx
46bee0:	51                   	push   %ecx
46bee1:	8d 4d f4             	lea    -0xc(%ebp),%ecx
46bee4:	51                   	push   %ecx
46bee5:	57                   	push   %edi
46bee6:	50                   	push   %eax
46bee7:	ff 75 fc             	push   -0x4(%ebp)
46beea:	ff 15 88 fe 4a 00    	call   *0x4afe88
46bef0:	85 c0                	test   %eax,%eax
46bef2:	75 21                	jne    0x46bf15
46bef4:	83 7d f4 04          	cmpl   $0x4,-0xc(%ebp)
46bef8:	75 1b                	jne    0x46bf15
46befa:	39 7d f8             	cmp    %edi,-0x8(%ebp)
46befd:	8b 45 f0             	mov    -0x10(%ebp),%eax
46bf00:	8b 4e 04             	mov    0x4(%esi),%ecx
46bf03:	74 08                	je     0x46bf0d
46bf05:	09 88 9c 00 00 00    	or     %ecx,0x9c(%eax)
46bf0b:	eb 08                	jmp    0x46bf15
46bf0d:	f7 d1                	not    %ecx
46bf0f:	21 88 9c 00 00 00    	and    %ecx,0x9c(%eax)
46bf15:	89 7d f8             	mov    %edi,-0x8(%ebp)
46bf18:	c7 45 ec 04 00 00 00 	movl   $0x4,-0x14(%ebp)
46bf1f:	89 7d f4             	mov    %edi,-0xc(%ebp)
46bf22:	83 c6 08             	add    $0x8,%esi
46bf25:	8b 06                	mov    (%esi),%eax
46bf27:	3b c7                	cmp    %edi,%eax
46bf29:	75 ae                	jne    0x46bed9
46bf2b:	ff 75 fc             	push   -0x4(%ebp)
46bf2e:	ff 15 ac fe 4a 00    	call   *0x4afeac
46bf34:	83 c3 08             	add    $0x8,%ebx
46bf37:	39 3b                	cmp    %edi,(%ebx)
46bf39:	89 7d fc             	mov    %edi,-0x4(%ebp)
46bf3c:	0f 85 7a ff ff ff    	jne    0x46bebc
46bf42:	5e                   	pop    %esi
46bf43:	57                   	push   %edi
46bf44:	ff 15 ac fe 4a 00    	call   *0x4afeac
46bf4a:	33 c0                	xor    %eax,%eax
46bf4c:	5f                   	pop    %edi
46bf4d:	40                   	inc    %eax
46bf4e:	5b                   	pop    %ebx
46bf4f:	c9                   	leave
46bf50:	c3                   	ret
46bf51:	8b 44 24 08          	mov    0x8(%esp),%eax
46bf55:	85 c0                	test   %eax,%eax
46bf57:	74 15                	je     0x46bf6e
46bf59:	8b 89 9c 00 00 00    	mov    0x9c(%ecx),%ecx
46bf5f:	23 4c 24 04          	and    0x4(%esp),%ecx
46bf63:	f7 d9                	neg    %ecx
46bf65:	1b c9                	sbb    %ecx,%ecx
46bf67:	f7 d9                	neg    %ecx
46bf69:	89 08                	mov    %ecx,(%eax)
46bf6b:	33 c0                	xor    %eax,%eax
46bf6d:	40                   	inc    %eax
46bf6e:	c2 08 00             	ret    $0x8
46bf71:	a1 0c a9 4a 00       	mov    0x4aa90c,%eax
46bf76:	33 d2                	xor    %edx,%edx
46bf78:	3b c2                	cmp    %edx,%eax
46bf7a:	56                   	push   %esi
46bf7b:	8b f1                	mov    %ecx,%esi
46bf7d:	74 0e                	je     0x46bf8d
46bf7f:	39 56 54             	cmp    %edx,0x54(%esi)
46bf82:	75 03                	jne    0x46bf87
46bf84:	89 46 54             	mov    %eax,0x54(%esi)
46bf87:	89 15 0c a9 4a 00    	mov    %edx,0x4aa90c
46bf8d:	8b 4e 54             	mov    0x54(%esi),%ecx
46bf90:	3b ca                	cmp    %edx,%ecx
46bf92:	74 08                	je     0x46bf9c
46bf94:	8b 01                	mov    (%ecx),%eax
46bf96:	52                   	push   %edx
46bf97:	ff 50 0c             	call   *0xc(%eax)
46bf9a:	eb 06                	jmp    0x46bfa2
46bf9c:	89 15 8c 75 4a 00    	mov    %edx,0x4a758c
46bfa2:	8b 06                	mov    (%esi),%eax
46bfa4:	8b ce                	mov    %esi,%ecx
46bfa6:	ff 90 b4 00 00 00    	call   *0xb4(%eax)
46bfac:	33 c0                	xor    %eax,%eax
46bfae:	40                   	inc    %eax
46bfaf:	5e                   	pop    %esi
46bfb0:	c3                   	ret
46bfb1:	55                   	push   %ebp
46bfb2:	8b ec                	mov    %esp,%ebp
46bfb4:	81 ec 10 01 00 00    	sub    $0x110,%esp
46bfba:	a1 40 8b 4a 00       	mov    0x4a8b40,%eax
46bfbf:	53                   	push   %ebx
46bfc0:	89 45 fc             	mov    %eax,-0x4(%ebp)
46bfc3:	bb 04 01 00 00       	mov    $0x104,%ebx
46bfc8:	53                   	push   %ebx
46bfc9:	8d 85 f0 fe ff ff    	lea    -0x110(%ebp),%eax
46bfcf:	50                   	push   %eax
46bfd0:	ff 71 40             	push   0x40(%ecx)
46bfd3:	ff 15 f0 02 4b 00    	call   *0x4b02f0
46bfd9:	85 c0                	test   %eax,%eax