46f7c8:	5b                   	pop    %ebx
46f7c9:	5d                   	pop    %ebp
46f7ca:	c3                   	ret
46f7cb:	53                   	push   %ebx
46f7cc:	53                   	push   %ebx
46f7cd:	53                   	push   %ebx
46f7ce:	53                   	push   %ebx
46f7cf:	53                   	push   %ebx
46f7d0:	e8 2e d5 fd ff       	call   0x44cd03
46f7d5:	cc                   	int3
46f7d6:	8b ff                	mov    %edi,%edi
46f7d8:	55                   	push   %ebp
46f7d9:	8b ec                	mov    %esp,%ebp
46f7db:	83 ec 28             	sub    $0x28,%esp
46f7de:	83 65 f4 00          	andl   $0x0,-0xc(%ebp)
46f7e2:	83 65 f0 00          	andl   $0x0,-0x10(%ebp)
46f7e6:	83 7d 08 05          	cmpl   $0x5,0x8(%ebp)
46f7ea:	76 14                	jbe    0x46f800
46f7ec:	e8 3e d6 fd ff       	call   0x44ce2f
46f7f1:	c7 00 16 00 00 00    	movl   $0x16,(%eax)
46f7f7:	e8 da d4 fd ff       	call   0x44ccd6
46f7fc:	33 c0                	xor    %eax,%eax
46f7fe:	eb 57                	jmp    0x46f857
46f800:	e8 fb 27 00 00       	call   0x472000
46f805:	89 45 f8             	mov    %eax,-0x8(%ebp)
46f808:	e8 15 5f 00 00       	call   0x475722
46f80d:	e8 da 0f 01 00       	call   0x4807ec
46f812:	8b 45 f8             	mov    -0x8(%ebp),%eax
46f815:	8d 4d ff             	lea    -0x1(%ebp),%ecx
46f818:	83 88 50 03 00 00 10 	orl    $0x10,0x350(%eax)
46f81f:	8d 45 f8             	lea    -0x8(%ebp),%eax
46f822:	89 45 ec             	mov    %eax,-0x14(%ebp)
46f825:	8d 45 f0             	lea    -0x10(%ebp),%eax
46f828:	89 45 d8             	mov    %eax,-0x28(%ebp)
46f82b:	8d 45 f8             	lea    -0x8(%ebp),%eax
46f82e:	89 45 dc             	mov    %eax,-0x24(%ebp)
46f831:	8d 45 f4             	lea    -0xc(%ebp),%eax
46f834:	89 45 e0             	mov    %eax,-0x20(%ebp)
46f837:	8d 45 08             	lea    0x8(%ebp),%eax
46f83a:	89 45 e4             	mov    %eax,-0x1c(%ebp)
46f83d:	8d 45 0c             	lea    0xc(%ebp),%eax
46f840:	89 45 e8             	mov    %eax,-0x18(%ebp)
46f843:	8d 45 ec             	lea    -0x14(%ebp),%eax
46f846:	50                   	push   %eax
46f847:	8d 45 d8             	lea    -0x28(%ebp),%eax
46f84a:	50                   	push   %eax
46f84b:	8d 45 ff             	lea    -0x1(%ebp),%eax
46f84e:	50                   	push   %eax
46f84f:	e8 75 f0 ff ff       	call   0x46e8c9
46f854:	8b 45 f4             	mov    -0xc(%ebp),%eax
46f857:	8b e5                	mov    %ebp,%esp
46f859:	5d                   	pop    %ebp
46f85a:	c3                   	ret
46f85b:	8b ff                	mov    %edi,%edi
46f85d:	55                   	push   %ebp
46f85e:	8b ec                	mov    %esp,%ebp
46f860:	83 ec 0c             	sub    $0xc,%esp
46f863:	53                   	push   %ebx
46f864:	56                   	push   %esi
46f865:	33 f6                	xor    %esi,%esi
46f867:	46                   	inc    %esi
46f868:	68 a6 06 00 00       	push   $0x6a6
46f86d:	89 75 f8             	mov    %esi,-0x8(%ebp)
46f870:	e8 b5 74 00 00       	call   0x476d2a
46f875:	8b d8                	mov    %eax,%ebx
46f877:	33 c0                	xor    %eax,%eax
46f879:	59                   	pop    %ecx
46f87a:	85 db                	test   %ebx,%ebx
46f87c:	0f 84 13 01 00 00    	je     0x46f995
46f882:	57                   	push   %edi
46f883:	8d 7b 04             	lea    0x4(%ebx),%edi
46f886:	66 89 07             	mov    %ax,(%edi)
46f889:	89 33                	mov    %esi,(%ebx)
46f88b:	8b 75 08             	mov    0x8(%ebp),%esi
46f88e:	8d 46 30             	lea    0x30(%esi),%eax
46f891:	ff 30                	push   (%eax)
46f893:	89 45 f4             	mov    %eax,-0xc(%ebp)
46f896:	68 6c d9 49 00       	push   $0x49d96c
46f89b:	ff 35 24 d8 49 00    	push   0x49d824
46f8a1:	6a 03                	push   $0x3
46f8a3:	68 51 03 00 00       	push   $0x351
46f8a8:	57                   	push   %edi
46f8a9:	e8 e7 fe ff ff       	call   0x46f795
46f8ae:	b8 24 d8 49 00       	mov    $0x49d824,%eax
46f8b3:	83 c4 18             	add    $0x18,%esp
46f8b6:	89 45 fc             	mov    %eax,-0x4(%ebp)
46f8b9:	68 68 d9 49 00       	push   $0x49d968
46f8be:	68 51 03 00 00       	push   $0x351
46f8c3:	57                   	push   %edi
46f8c4:	e8 c7 f5 00 00       	call   0x47ee90
46f8c9:	83 c4 0c             	add    $0xc,%esp
46f8cc:	85 c0                	test   %eax,%eax
46f8ce:	0f 85 13 01 00 00    	jne    0x46f9e7
46f8d4:	8b 45 f4             	mov    -0xc(%ebp),%eax
46f8d7:	8d 48 10             	lea    0x10(%eax),%ecx
46f8da:	8b 00                	mov    (%eax),%eax
46f8dc:	89 4d f4             	mov    %ecx,-0xc(%ebp)
46f8df:	8b 09                	mov    (%ecx),%ecx
46f8e1:	66 8b 10             	mov    (%eax),%dx
46f8e4:	66 3b 11             	cmp    (%ecx),%dx
46f8e7:	75 1e                	jne    0x46f907
46f8e9:	66 85 d2             	test   %dx,%dx
46f8ec:	74 15                	je     0x46f903
46f8ee:	66 8b 50 02          	mov    0x2(%eax),%dx
46f8f2:	66 3b 51 02          	cmp    0x2(%ecx),%dx
46f8f6:	75 0f                	jne    0x46f907
46f8f8:	83 c0 04             	add    $0x4,%eax
46f8fb:	83 c1 04             	add    $0x4,%ecx
46f8fe:	66 85 d2             	test   %dx,%dx
46f901:	75 de                	jne    0x46f8e1
46f903:	33 c0                	xor    %eax,%eax
46f905:	eb 05                	jmp    0x46f90c
46f907:	1b c0                	sbb    %eax,%eax
46f909:	83 c8 01             	or     $0x1,%eax
46f90c:	8b 4d fc             	mov    -0x4(%ebp),%ecx
46f90f:	f7 d8                	neg    %eax
46f911:	1b c0                	sbb    %eax,%eax
46f913:	83 c1 0c             	add    $0xc,%ecx
46f916:	f7 d0                	not    %eax
46f918:	89 4d fc             	mov    %ecx,-0x4(%ebp)
46f91b:	21 45 f8             	and    %eax,-0x8(%ebp)
46f91e:	8b 45 f4             	mov    -0xc(%ebp),%eax
46f921:	89 45 f4             	mov    %eax,-0xc(%ebp)
46f924:	ff 30                	push   (%eax)
46f926:	68 6c d9 49 00       	push   $0x49d96c
46f92b:	ff 31                	push   (%ecx)
46f92d:	6a 03                	push   $0x3
46f92f:	68 51 03 00 00       	push   $0x351
46f934:	57                   	push   %edi
46f935:	e8 5b fe ff ff       	call   0x46f795
46f93a:	8b 45 fc             	mov    -0x4(%ebp),%eax
46f93d:	83 c4 18             	add    $0x18,%esp
46f940:	3d 54 d8 49 00       	cmp    $0x49d854,%eax
46f945:	0f 8c 6e ff ff ff    	jl     0x46f8b9
46f94b:	83 7d f8 00          	cmpl   $0x0,-0x8(%ebp)
46f94f:	75 4a                	jne    0x46f99b
46f951:	8b 4e 28             	mov    0x28(%esi),%ecx
46f954:	83 cf ff             	or     $0xffffffff,%edi
46f957:	85 c9                	test   %ecx,%ecx
46f959:	74 11                	je     0x46f96c
46f95b:	8b c7                	mov    %edi,%eax
46f95d:	f0 0f c1 01          	lock xadd %eax,(%ecx)
46f961:	75 09                	jne    0x46f96c
46f963:	ff 76 28             	push   0x28(%esi)
46f966:	e8 ce 29 00 00       	call   0x472339
46f96b:	59                   	pop    %ecx
46f96c:	8b 46 24             	mov    0x24(%esi),%eax
46f96f:	85 c0                	test   %eax,%eax
46f971:	74 10                	je     0x46f983
46f973:	f0 0f c1 38          	lock xadd %edi,(%eax)
46f977:	4f                   	dec    %edi
46f978:	75 09                	jne    0x46f983
46f97a:	ff 76 24             	push   0x24(%esi)
46f97d:	e8 b7 29 00 00       	call   0x472339
46f982:	59                   	pop    %ecx
46f983:	83 66 24 00          	andl   $0x0,0x24(%esi)
46f987:	8d 43 04             	lea    0x4(%ebx),%eax
46f98a:	83 66 1c 00          	andl   $0x0,0x1c(%esi)
46f98e:	89 5e 28             	mov    %ebx,0x28(%esi)
46f991:	89 46 20             	mov    %eax,0x20(%esi)
46f994:	5f                   	pop    %edi
46f995:	5e                   	pop    %esi
46f996:	5b                   	pop    %ebx
46f997:	8b e5                	mov    %ebp,%esp
46f999:	5d                   	pop    %ebp
46f99a:	c3                   	ret
46f99b:	53                   	push   %ebx
46f99c:	e8 98 29 00 00       	call   0x472339
46f9a1:	59                   	pop    %ecx
46f9a2:	8b 4e 28             	mov    0x28(%esi),%ecx
46f9a5:	83 cf ff             	or     $0xffffffff,%edi
46f9a8:	85 c9                	test   %ecx,%ecx
46f9aa:	74 11                	je     0x46f9bd
46f9ac:	8b c7                	mov    %edi,%eax
46f9ae:	f0 0f c1 01          	lock xadd %eax,(%ecx)
46f9b2:	75 09                	jne    0x46f9bd
46f9b4:	ff 76 28             	push   0x28(%esi)
46f9b7:	e8 7d 29 00 00       	call   0x472339
46f9bc:	59                   	pop    %ecx
46f9bd:	8b 46 24             	mov    0x24(%esi),%eax
46f9c0:	85 c0                	test   %eax,%eax
46f9c2:	74 10                	je     0x46f9d4
46f9c4:	f0 0f c1 38          	lock xadd %edi,(%eax)
46f9c8:	4f                   	dec    %edi
46f9c9:	75 09                	jne    0x46f9d4
46f9cb:	ff 76 24             	push   0x24(%esi)
46f9ce:	e8 66 29 00 00       	call   0x472339
46f9d3:	59                   	pop    %ecx
46f9d4:	33 c0                	xor    %eax,%eax
46f9d6:	89 46 24             	mov    %eax,0x24(%esi)
46f9d9:	89 46 1c             	mov    %eax,0x1c(%esi)
46f9dc:	89 46 28             	mov    %eax,0x28(%esi)
46f9df:	89 46 20             	mov    %eax,0x20(%esi)
46f9e2:	8b 46 40             	mov    0x40(%esi),%eax
46f9e5:	eb ad                	jmp    0x46f994
46f9e7:	33 c0                	xor    %eax,%eax
46f9e9:	50                   	push   %eax
46f9ea:	50                   	push   %eax
46f9eb:	50                   	push   %eax
46f9ec:	50                   	push   %eax
46f9ed:	50                   	push   %eax
46f9ee:	e8 10 d3 fd ff       	call   0x44cd03
46f9f3:	cc                   	int3
46f9f4:	8b ff                	mov    %edi,%edi
46f9f6:	55                   	push   %ebp
46f9f7:	8b ec                	mov    %esp,%ebp
46f9f9:	81 ec d0 01 00 00    	sub    $0x1d0,%esp
46f9ff:	a1 94 80 4b 00       	mov    0x4b8094,%eax
46fa04:	33 c5                	xor    %ebp,%eax
46fa06:	89 45 fc             	mov    %eax,-0x4(%ebp)
46fa09:	8b 45 0c             	mov    0xc(%ebp),%eax
46fa0c:	53                   	push   %ebx
46fa0d:	56                   	push   %esi
46fa0e:	8b 75 10             	mov    0x10(%ebp),%esi
46fa11:	57                   	push   %edi
46fa12:	8b 7d 08             	mov    0x8(%ebp),%edi
46fa15:	89 bd 38 fe ff ff    	mov    %edi,-0x1c8(%ebp)
46fa1b:	85 c0                	test   %eax,%eax
46fa1d:	74 21                	je     0x46fa40
46fa1f:	85 f6                	test   %esi,%esi
46fa21:	74 10                	je     0x46fa33
46fa23:	56                   	push   %esi
46fa24:	50                   	push   %eax
46fa25:	57                   	push   %edi
46fa26:	e8 ae 02 00 00       	call   0x46fcd9
46fa2b:	83 c4 0c             	add    $0xc,%esp
46fa2e:	e9 83 02 00 00       	jmp    0x46fcb6
46fa33:	83 c0 02             	add    $0x2,%eax
46fa36:	03 c0                	add    %eax,%eax
46fa38:	8b 04 c7             	mov    (%edi,%eax,8),%eax
46fa3b:	e9 76 02 00 00       	jmp    0x46fcb6
46fa40:	33 c0                	xor    %eax,%eax
46fa42:	c7 85 3c fe ff ff 01 	movl   $0x1,-0x1c4(%ebp)
46fa49:	00 00 00
46fa4c:	89 85 34 fe ff ff    	mov    %eax,-0x1cc(%ebp)
46fa52:	8b d8                	mov    %eax,%ebx
46fa54:	89 9d 44 fe ff ff    	mov    %ebx,-0x1bc(%ebp)
46fa5a:	85 f6                	test   %esi,%esi
46fa5c:	0f 84 4d 02 00 00    	je     0x46fcaf
46fa62:	66 83 3e 4c          	cmpw   $0x4c,(%esi)
46fa66:	0f 85 61 01 00 00    	jne    0x46fbcd
46fa6c:	66 83 7e 02 43       	cmpw   $0x43,0x2(%esi)
46fa71:	0f 85 56 01 00 00    	jne    0x46fbcd
46fa77:	66 83 7e 04 5f       	cmpw   $0x5f,0x4(%esi)
46fa7c:	0f 85 4b 01 00 00    	jne    0x46fbcd
46fa82:	68 60 d9 49 00       	push   $0x49d960
46fa87:	56                   	push   %esi
46fa88:	e8 50 0a 01 00       	call   0x4804dd
46fa8d:	8b d8                	mov    %eax,%ebx
46fa8f:	89 9d 30 fe ff ff    	mov    %ebx,-0x1d0(%ebp)
46fa95:	59                   	pop    %ecx
46fa96:	59                   	pop    %ecx
46fa97:	85 db                	test   %ebx,%ebx
46fa99:	0f 84 27 01 00 00    	je     0x46fbc6
46fa9f:	2b c6                	sub    %esi,%eax
46faa1:	d1 f8                	sar    $1,%eax
46faa3:	89 85 3c fe ff ff    	mov    %eax,-0x1c4(%ebp)
46faa9:	0f 84 17 01 00 00    	je     0x46fbc6
46faaf:	6a 3b                	push   $0x3b
46fab1:	58                   	pop    %eax
46fab2:	66 39 03             	cmp    %ax,(%ebx)
46fab5:	0f 84 0b 01 00 00    	je     0x46fbc6
46fabb:	8b bd 3c fe ff ff    	mov    -0x1c4(%ebp),%edi
46fac1:	bb 24 d8 49 00       	mov    $0x49d824,%ebx
46fac6:	c7 85 40 fe ff ff 01 	movl   $0x1,-0x1c0(%ebp)
46facd:	00 00 00
46fad0:	57                   	push   %edi
46fad1:	56                   	push   %esi
46fad2:	ff 33                	push   (%ebx)
46fad4:	e8 b7 07 00 00       	call   0x470290
46fad9:	83 c4 0c             	add    $0xc,%esp
46fadc:	85 c0                	test   %eax,%eax
46fade:	75 1c                	jne    0x46fafc
46fae0:	8b 0b                	mov    (%ebx),%ecx
46fae2:	8d 51 02             	lea    0x2(%ecx),%edx
46fae5:	66 8b 01             	mov    (%ecx),%ax
46fae8:	83 c1 02             	add    $0x2,%ecx
46faeb:	66 3b 85 34 fe ff ff 	cmp    -0x1cc(%ebp),%ax
46faf2:	75 f1                	jne    0x46fae5
46faf4:	2b ca                	sub    %edx,%ecx
46faf6:	d1 f9                	sar    $1,%ecx
46faf8:	3b f9                	cmp    %ecx,%edi
46fafa:	74 11                	je     0x46fb0d
46fafc:	ff 85 40 fe ff ff    	incl   -0x1c0(%ebp)
46fb02:	83 c3 0c             	add    $0xc,%ebx
46fb05:	81 fb 54 d8 49 00    	cmp    $0x49d854,%ebx
46fb0b:	7e c3                	jle    0x46fad0
46fb0d:	8b 9d 30 fe ff ff    	mov    -0x1d0(%ebp),%ebx
46fb13:	83 c3 02             	add    $0x2,%ebx
46fb16:	68 68 d9 49 00       	push   $0x49d968
46fb1b:	53                   	push   %ebx
46fb1c:	e8 6c 09 01 00       	call   0x48048d
46fb21:	8b bd 38 fe ff ff    	mov    -0x1c8(%ebp),%edi
46fb27:	8b f0                	mov    %eax,%esi
46fb29:	59                   	pop    %ecx
46fb2a:	59                   	pop    %ecx
46fb2b:	85 f6                	test   %esi,%esi
46fb2d:	75 0c                	jne    0x46fb3b
46fb2f:	6a 3b                	push   $0x3b
46fb31:	58                   	pop    %eax
46fb32:	66 39 03             	cmp    %ax,(%ebx)
46fb35:	0f 85 8b 00 00 00    	jne    0x46fbc6
46fb3b:	83 bd 40 fe ff ff 05 	cmpl   $0x5,-0x1c0(%ebp)
46fb42:	7f 5f                	jg     0x46fba3
46fb44:	56                   	push   %esi
46fb45:	53                   	push   %ebx
46fb46:	8d 85 f4 fe ff ff    	lea    -0x10c(%ebp),%eax
46fb4c:	68 83 00 00 00       	push   $0x83
46fb51:	50                   	push   %eax
46fb52:	e8 7b f4 00 00       	call   0x47efd2
46fb57:	83 c4 10             	add    $0x10,%esp
46fb5a:	85 c0                	test   %eax,%eax
46fb5c:	0f 85 6a 01 00 00    	jne    0x46fccc
46fb62:	8d 04 36             	lea    (%esi,%esi,1),%eax
46fb65:	3d 06 01 00 00       	cmp    $0x106,%eax
46fb6a:	0f 83 57 01 00 00    	jae    0x46fcc7
46fb70:	33 c9                	xor    %ecx,%ecx
46fb72:	66 89 8c 05 f4 fe ff 	mov    %cx,-0x10c(%ebp,%eax,1)
46fb79:	ff
46fb7a:	8d 85 f4 fe ff ff    	lea    -0x10c(%ebp),%eax
46fb80:	50                   	push   %eax
46fb81:	ff b5 40 fe ff ff    	push   -0x1c0(%ebp)
46fb87:	57                   	push   %edi
46fb88:	e8 4c 01 00 00       	call   0x46fcd9
46fb8d:	83 c4 0c             	add    $0xc,%esp
46fb90:	85 c0                	test   %eax,%eax
46fb92:	8b 85 44 fe ff ff    	mov    -0x1bc(%ebp),%eax
46fb98:	74 0f                	je     0x46fba9
46fb9a:	40                   	inc    %eax
46fb9b:	89 85 44 fe ff ff    	mov    %eax,-0x1bc(%ebp)
46fba1:	eb 06                	jmp    0x46fba9
46fba3:	8b 85 44 fe ff ff    	mov    -0x1bc(%ebp),%eax
46fba9:	8d 34 73             	lea    (%ebx,%esi,2),%esi
46fbac:	33 c9                	xor    %ecx,%ecx
46fbae:	66 39 0e             	cmp    %cx,(%esi)
46fbb1:	74 0c                	je     0x46fbbf
46fbb3:	83 c6 02             	add    $0x2,%esi
46fbb6:	66 39 0e             	cmp    %cx,(%esi)
46fbb9:	0f 85 c3 fe ff ff    	jne    0x46fa82
46fbbf:	85 c0                	test   %eax,%eax
46fbc1:	e9 e3 00 00 00       	jmp    0x46fca9
46fbc6:	33 c0                	xor    %eax,%eax
46fbc8:	e9 e9 00 00 00       	jmp    0x46fcb6
46fbcd:	50                   	push   %eax
46fbce:	6a 55                	push   $0x55
46fbd0:	8d 85 48 fe ff ff    	lea    -0x1b8(%ebp),%eax
46fbd6:	50                   	push   %eax
46fbd7:	68 83 00 00 00       	push   $0x83
46fbdc:	8d 85 f4 fe ff ff    	lea    -0x10c(%ebp),%eax
46fbe2:	50                   	push   %eax