5086ae:	6a 3f                	push   $0x3f
5086b0:	6a 02                	push   $0x2
5086b2:	6a 01                	push   $0x1
5086b4:	b9 01 00 00 00       	mov    $0x1,%ecx
5086b9:	8b d6                	mov    %esi,%edx
5086bb:	8b c3                	mov    %ebx,%eax
5086bd:	e8 c2 fd ff ff       	call   0x508484
5086c2:	8b d8                	mov    %eax,%ebx
5086c4:	6a 00                	push   $0x0
5086c6:	b9 01 00 00 00       	mov    $0x1,%ecx
5086cb:	8b d6                	mov    %esi,%edx
5086cd:	8b c3                	mov    %ebx,%eax
5086cf:	e8 ec fd ff ff       	call   0x5084c0
5086d4:	8b d8                	mov    %eax,%ebx
5086d6:	6a 3f                	push   $0x3f
5086d8:	6a 01                	push   $0x1
5086da:	6a 00                	push   $0x0
5086dc:	b9 01 00 00 00       	mov    $0x1,%ecx
5086e1:	8b d6                	mov    %esi,%edx
5086e3:	8b c3                	mov    %ebx,%eax
5086e5:	e8 9a fd ff ff       	call   0x508484
5086ea:	5a                   	pop    %edx
5086eb:	5f                   	pop    %edi
5086ec:	5e                   	pop    %esi
5086ed:	5b                   	pop    %ebx
5086ee:	c3                   	ret
5086ef:	90                   	nop
5086f0:	53                   	push   %ebx
5086f1:	8b d8                	mov    %eax,%ebx
5086f3:	56                   	push   %esi
5086f4:	8b f2                	mov    %edx,%esi
5086f6:	83 7b 10 64          	cmpl   $0x64,0x10(%ebx)
5086fa:	74 15                	je     0x508711
5086fc:	8b 03                	mov    (%ebx),%eax
5086fe:	c7 40 14 12 00 00 00 	movl   $0x12,0x14(%eax)
508705:	8b 53 10             	mov    0x10(%ebx),%edx
508708:	89 50 18             	mov    %edx,0x18(%eax)
50870b:	8b c3                	mov    %ebx,%eax
50870d:	8b 10                	mov    (%eax),%edx
50870f:	ff 12                	call   *(%edx)
508711:	85 f6                	test   %esi,%esi
508713:	74 09                	je     0x50871e
508715:	33 d2                	xor    %edx,%edx
508717:	8b c3                	mov    %ebx,%eax
508719:	e8 7a 02 00 00       	call   0x508998
50871e:	8b c3                	mov    %ebx,%eax
508720:	8b 10                	mov    (%eax),%edx
508722:	ff 52 10             	call   *0x10(%edx)
508725:	8b c3                	mov    %ebx,%eax
508727:	8b 50 14             	mov    0x14(%eax),%edx
50872a:	ff 52 08             	call   *0x8(%edx)
50872d:	8b c3                	mov    %ebx,%eax
50872f:	e8 30 04 00 00       	call   0x508b64
508734:	8b c3                	mov    %ebx,%eax
508736:	8b 90 44 01 00 00    	mov    0x144(%eax),%edx
50873c:	ff 12                	call   *(%edx)
50873e:	33 c9                	xor    %ecx,%ecx
508740:	89 8b d8 00 00 00    	mov    %ecx,0xd8(%ebx)
508746:	83 bb a8 00 00 00 00 	cmpl   $0x0,0xa8(%ebx)
50874d:	74 07                	je     0x508756
50874f:	b8 66 00 00 00       	mov    $0x66,%eax
508754:	eb 05                	jmp    0x50875b
508756:	b8 65 00 00 00       	mov    $0x65,%eax
50875b:	89 43 10             	mov    %eax,0x10(%ebx)
50875e:	5e                   	pop    %esi
50875f:	5b                   	pop    %ebx
508760:	c3                   	ret
508761:	90                   	nop
508762:	90                   	nop
508763:	90                   	nop
508764:	53                   	push   %ebx
508765:	8b d8                	mov    %eax,%ebx
508767:	56                   	push   %esi
508768:	57                   	push   %edi
508769:	51                   	push   %ecx
50876a:	8b fa                	mov    %edx,%edi
50876c:	83 7b 10 65          	cmpl   $0x65,0x10(%ebx)
508770:	8b f1                	mov    %ecx,%esi
508772:	74 15                	je     0x508789
508774:	8b 03                	mov    (%ebx),%eax
508776:	c7 40 14 12 00 00 00 	movl   $0x12,0x14(%eax)
50877d:	8b 53 10             	mov    0x10(%ebx),%edx
508780:	89 50 18             	mov    %edx,0x18(%eax)
508783:	8b c3                	mov    %ebx,%eax
508785:	8b 10                	mov    (%eax),%edx
508787:	ff 12                	call   *(%edx)
508789:	8b 8b d8 00 00 00    	mov    0xd8(%ebx),%ecx
50878f:	3b 4b 1c             	cmp    0x1c(%ebx),%ecx
508792:	72 13                	jb     0x5087a7
508794:	8b 03                	mov    (%ebx),%eax
508796:	c7 40 14 77 00 00 00 	movl   $0x77,0x14(%eax)
50879d:	83 ca ff             	or     $0xffffffff,%edx
5087a0:	8b c3                	mov    %ebx,%eax
5087a2:	8b 08                	mov    (%eax),%ecx
5087a4:	ff 51 04             	call   *0x4(%ecx)
5087a7:	8b 43 08             	mov    0x8(%ebx),%eax
5087aa:	85 c0                	test   %eax,%eax
5087ac:	74 16                	je     0x5087c4
5087ae:	8b 93 d8 00 00 00    	mov    0xd8(%ebx),%edx
5087b4:	89 50 04             	mov    %edx,0x4(%eax)
5087b7:	8b 4b 1c             	mov    0x1c(%ebx),%ecx
5087ba:	89 48 08             	mov    %ecx,0x8(%eax)
5087bd:	8b c3                	mov    %ebx,%eax
5087bf:	8b 50 08             	mov    0x8(%eax),%edx
5087c2:	ff 12                	call   *(%edx)
5087c4:	8b 8b 44 01 00 00    	mov    0x144(%ebx),%ecx
5087ca:	83 79 0c 00          	cmpl   $0x0,0xc(%ecx)
5087ce:	74 0b                	je     0x5087db
5087d0:	8b c3                	mov    %ebx,%eax
5087d2:	8b 90 44 01 00 00    	mov    0x144(%eax),%edx
5087d8:	ff 52 04             	call   *0x4(%edx)
5087db:	8b 43 1c             	mov    0x1c(%ebx),%eax
5087de:	2b 83 d8 00 00 00    	sub    0xd8(%ebx),%eax
5087e4:	3b c6                	cmp    %esi,%eax
5087e6:	73 02                	jae    0x5087ea
5087e8:	8b f0                	mov    %eax,%esi
5087ea:	33 c0                	xor    %eax,%eax
5087ec:	8b d7                	mov    %edi,%edx
5087ee:	89 04 24             	mov    %eax,(%esp)
5087f1:	8b c3                	mov    %ebx,%eax
5087f3:	56                   	push   %esi
5087f4:	8d 4c 24 04          	lea    0x4(%esp),%ecx
5087f8:	8b b0 48 01 00 00    	mov    0x148(%eax),%esi
5087fe:	ff 56 04             	call   *0x4(%esi)
508801:	8b 04 24             	mov    (%esp),%eax
508804:	01 83 d8 00 00 00    	add    %eax,0xd8(%ebx)
50880a:	8b 04 24             	mov    (%esp),%eax
50880d:	5a                   	pop    %edx
50880e:	5f                   	pop    %edi
50880f:	5e                   	pop    %esi
508810:	5b                   	pop    %ebx
508811:	c3                   	ret
508812:	90                   	nop
508813:	90                   	nop
508814:	53                   	push   %ebx
508815:	8b d8                	mov    %eax,%ebx
508817:	56                   	push   %esi
508818:	57                   	push   %edi
508819:	55                   	push   %ebp
50881a:	8b e9                	mov    %ecx,%ebp
50881c:	83 7b 10 66          	cmpl   $0x66,0x10(%ebx)
508820:	8b fa                	mov    %edx,%edi
508822:	74 15                	je     0x508839
508824:	8b 03                	mov    (%ebx),%eax
508826:	c7 40 14 12 00 00 00 	movl   $0x12,0x14(%eax)
50882d:	8b 53 10             	mov    0x10(%ebx),%edx
508830:	89 50 18             	mov    %edx,0x18(%eax)
508833:	8b c3                	mov    %ebx,%eax
508835:	8b 10                	mov    (%eax),%edx
508837:	ff 12                	call   *(%edx)
508839:	8b 8b d8 00 00 00    	mov    0xd8(%ebx),%ecx
50883f:	3b 4b 1c             	cmp    0x1c(%ebx),%ecx
508842:	72 17                	jb     0x50885b
508844:	8b 03                	mov    (%ebx),%eax
508846:	c7 40 14 77 00 00 00 	movl   $0x77,0x14(%eax)
50884d:	83 ca ff             	or     $0xffffffff,%edx
508850:	8b c3                	mov    %ebx,%eax
508852:	8b 08                	mov    (%eax),%ecx
508854:	ff 51 04             	call   *0x4(%ecx)
508857:	33 c0                	xor    %eax,%eax
508859:	eb 6d                	jmp    0x5088c8
50885b:	8b 43 08             	mov    0x8(%ebx),%eax
50885e:	85 c0                	test   %eax,%eax
508860:	74 16                	je     0x508878
508862:	8b 93 d8 00 00 00    	mov    0xd8(%ebx),%edx
508868:	89 50 04             	mov    %edx,0x4(%eax)
50886b:	8b 4b 1c             	mov    0x1c(%ebx),%ecx
50886e:	89 48 08             	mov    %ecx,0x8(%eax)
508871:	8b c3                	mov    %ebx,%eax
508873:	8b 50 08             	mov    0x8(%eax),%edx
508876:	ff 12                	call   *(%edx)
508878:	8b 8b 44 01 00 00    	mov    0x144(%ebx),%ecx
50887e:	83 79 0c 00          	cmpl   $0x0,0xc(%ecx)
508882:	74 0b                	je     0x50888f
508884:	8b c3                	mov    %ebx,%eax
508886:	8b 90 44 01 00 00    	mov    0x144(%eax),%edx
50888c:	ff 52 04             	call   *0x4(%edx)
50888f:	8b b3 e4 00 00 00    	mov    0xe4(%ebx),%esi
508895:	c1 e6 03             	shl    $0x3,%esi
508898:	3b f5                	cmp    %ebp,%esi
50889a:	76 0f                	jbe    0x5088ab
50889c:	8b 03                	mov    (%ebx),%eax
50889e:	c7 40 14 15 00 00 00 	movl   $0x15,0x14(%eax)
5088a5:	8b c3                	mov    %ebx,%eax
5088a7:	8b 10                	mov    (%eax),%edx
5088a9:	ff 12                	call   *(%edx)
5088ab:	8b d7                	mov    %edi,%edx
5088ad:	8b c3                	mov    %ebx,%eax
5088af:	8b 88 50 01 00 00    	mov    0x150(%eax),%ecx
5088b5:	ff 51 04             	call   *0x4(%ecx)
5088b8:	85 c0                	test   %eax,%eax
5088ba:	75 04                	jne    0x5088c0
5088bc:	33 c0                	xor    %eax,%eax
5088be:	eb 08                	jmp    0x5088c8
5088c0:	01 b3 d8 00 00 00    	add    %esi,0xd8(%ebx)
5088c6:	8b c6                	mov    %esi,%eax
5088c8:	5d                   	pop    %ebp
5088c9:	5f                   	pop    %edi
5088ca:	5e                   	pop    %esi
5088cb:	5b                   	pop    %ebx
5088cc:	c3                   	ret
5088cd:	8d 40 00             	lea    0x0(%eax),%eax
5088d0:	53                   	push   %ebx
5088d1:	8b d8                	mov    %eax,%ebx
5088d3:	33 c0                	xor    %eax,%eax
5088d5:	56                   	push   %esi
5088d6:	8b f1                	mov    %ecx,%esi
5088d8:	89 43 04             	mov    %eax,0x4(%ebx)
5088db:	83 fa 3d             	cmp    $0x3d,%edx
5088de:	74 19                	je     0x5088f9
5088e0:	8b 03                	mov    (%ebx),%eax
5088e2:	c7 40 14 0a 00 00 00 	movl   $0xa,0x14(%eax)
5088e9:	c7 40 18 3d 00 00 00 	movl   $0x3d,0x18(%eax)
5088f0:	89 50 1c             	mov    %edx,0x1c(%eax)
5088f3:	8b c3                	mov    %ebx,%eax
5088f5:	8b 10                	mov    (%eax),%edx
5088f7:	ff 12                	call   *(%edx)
5088f9:	81 fe 68 01 00 00    	cmp    $0x168,%esi
5088ff:	74 19                	je     0x50891a
508901:	8b 03                	mov    (%ebx),%eax
508903:	c7 40 14 13 00 00 00 	movl   $0x13,0x14(%eax)
50890a:	c7 40 18 68 01 00 00 	movl   $0x168,0x18(%eax)
508911:	89 70 1c             	mov    %esi,0x1c(%eax)
508914:	8b c3                	mov    %ebx,%eax
508916:	8b 10                	mov    (%eax),%edx
508918:	ff 12                	call   *(%edx)
50891a:	8b 33                	mov    (%ebx),%esi
50891c:	68 68 01 00 00       	push   $0x168
508921:	6a 00                	push   $0x0
508923:	53                   	push   %ebx
508924:	e8 8b 29 ff ff       	call   0x4fb2b4
508929:	83 c4 0c             	add    $0xc,%esp
50892c:	89 33                	mov    %esi,(%ebx)
50892e:	33 c0                	xor    %eax,%eax
508930:	89 43 0c             	mov    %eax,0xc(%ebx)
508933:	8b c3                	mov    %ebx,%eax
508935:	e8 c2 4e ff ff       	call   0x4fd7fc
50893a:	33 d2                	xor    %edx,%edx
50893c:	33 c9                	xor    %ecx,%ecx
50893e:	89 53 08             	mov    %edx,0x8(%ebx)
508941:	89 4b 14             	mov    %ecx,0x14(%ebx)
508944:	33 c0                	xor    %eax,%eax
508946:	8d 53 40             	lea    0x40(%ebx),%edx
508949:	89 43 3c             	mov    %eax,0x3c(%ebx)
50894c:	33 c0                	xor    %eax,%eax
50894e:	33 c9                	xor    %ecx,%ecx
508950:	40                   	inc    %eax
508951:	89 0a                	mov    %ecx,(%edx)
508953:	83 c2 04             	add    $0x4,%edx
508956:	83 f8 04             	cmp    $0x4,%eax
508959:	7c f3                	jl     0x50894e
50895b:	33 c0                	xor    %eax,%eax
50895d:	8d 53 50             	lea    0x50(%ebx),%edx
508960:	33 c9                	xor    %ecx,%ecx
508962:	40                   	inc    %eax
508963:	89 0a                	mov    %ecx,(%edx)
508965:	33 c9                	xor    %ecx,%ecx
508967:	89 4a 10             	mov    %ecx,0x10(%edx)
50896a:	83 c2 04             	add    $0x4,%edx
50896d:	83 f8 04             	cmp    $0x4,%eax
508970:	7c ee                	jl     0x508960
508972:	33 c0                	xor    %eax,%eax
508974:	89 43 28             	mov    %eax,0x28(%ebx)
508977:	c7 43 2c 00 00 f0 3f 	movl   $0x3ff00000,0x2c(%ebx)
50897e:	c7 43 10 64 00 00 00 	movl   $0x64,0x10(%ebx)
508985:	5e                   	pop    %esi
508986:	5b                   	pop    %ebx
508987:	c3                   	ret
508988:	e8 93 f2 ff ff       	call   0x507c20
50898d:	c3                   	ret
50898e:	90                   	nop
50898f:	90                   	nop
508990:	e8 5b f2 ff ff       	call   0x507bf0
508995:	c3                   	ret
508996:	90                   	nop
508997:	90                   	nop
508998:	53                   	push   %ebx
508999:	56                   	push   %esi
50899a:	33 c9                	xor    %ecx,%ecx
50899c:	8d 58 40             	lea    0x40(%eax),%ebx
50899f:	8b 33                	mov    (%ebx),%esi
5089a1:	85 f6                	test   %esi,%esi
5089a3:	74 06                	je     0x5089ab
5089a5:	89 96 80 00 00 00    	mov    %edx,0x80(%esi)
5089ab:	41                   	inc    %ecx
5089ac:	83 c3 04             	add    $0x4,%ebx
5089af:	83 f9 04             	cmp    $0x4,%ecx
5089b2:	7c eb                	jl     0x50899f
5089b4:	33 c9                	xor    %ecx,%ecx
5089b6:	83 c0 50             	add    $0x50,%eax
5089b9:	8b 18                	mov    (%eax),%ebx
5089bb:	85 db                	test   %ebx,%ebx
5089bd:	74 06                	je     0x5089c5
5089bf:	89 93 14 01 00 00    	mov    %edx,0x114(%ebx)
5089c5:	8b 58 10             	mov    0x10(%eax),%ebx
5089c8:	85 db                	test   %ebx,%ebx
5089ca:	74 06                	je     0x5089d2
5089cc:	89 93 14 01 00 00    	mov    %edx,0x114(%ebx)
5089d2:	41                   	inc    %ecx
5089d3:	83 c0 04             	add    $0x4,%eax
5089d6:	83 f9 04             	cmp    $0x4,%ecx
5089d9:	7c de                	jl     0x5089b9
5089db:	5e                   	pop    %esi
5089dc:	5b                   	pop    %ebx
5089dd:	c3                   	ret
5089de:	90                   	nop
5089df:	90                   	nop
5089e0:	53                   	push   %ebx
5089e1:	8b d8                	mov    %eax,%ebx
5089e3:	56                   	push   %esi
5089e4:	8b 43 10             	mov    0x10(%ebx),%eax
5089e7:	83 f8 65             	cmp    $0x65,%eax
5089ea:	74 05                	je     0x5089f1
5089ec:	83 f8 66             	cmp    $0x66,%eax
5089ef:	75 27                	jne    0x508a18
5089f1:	8b 93 d8 00 00 00    	mov    0xd8(%ebx),%edx
5089f7:	3b 53 1c             	cmp    0x1c(%ebx),%edx
5089fa:	73 0f                	jae    0x508a0b
5089fc:	8b 0b                	mov    (%ebx),%ecx
5089fe:	8b c3                	mov    %ebx,%eax
508a00:	c7 41 14 42 00 00 00 	movl   $0x42,0x14(%ecx)
508a07:	8b 10                	mov    (%eax),%edx
508a09:	ff 12                	call   *(%edx)
508a0b:	8b c3                	mov    %ebx,%eax
508a0d:	8b 90 44 01 00 00    	mov    0x144(%eax),%edx
508a13:	ff 52 08             	call   *0x8(%edx)
508a16:	eb 79                	jmp    0x508a91
508a18:	83 7b 10 67          	cmpl   $0x67,0x10(%ebx)
508a1c:	74 73                	je     0x508a91
508a1e:	8b 03                	mov    (%ebx),%eax
508a20:	c7 40 14 12 00 00 00 	movl   $0x12,0x14(%eax)
508a27:	8b 53 10             	mov    0x10(%ebx),%edx
508a2a:	89 50 18             	mov    %edx,0x18(%eax)
508a2d:	8b c3                	mov    %ebx,%eax
508a2f:	8b 10                	mov    (%eax),%edx
508a31:	ff 12                	call   *(%edx)
508a33:	eb 5c                	jmp    0x508a91
508a35:	8b c3                	mov    %ebx,%eax
508a37:	8b 90 44 01 00 00    	mov    0x144(%eax),%edx
508a3d:	ff 12                	call   *(%edx)
508a3f:	33 f6                	xor    %esi,%esi
508a41:	eb 3b                	jmp    0x508a7e
508a43:	8b 43 08             	mov    0x8(%ebx),%eax
508a46:	85 c0                	test   %eax,%eax
508a48:	74 13                	je     0x508a5d
508a4a:	89 70 04             	mov    %esi,0x4(%eax)
508a4d:	8b 93 e8 00 00 00    	mov    0xe8(%ebx),%edx
508a53:	89 50 08             	mov    %edx,0x8(%eax)
508a56:	8b c3                	mov    %ebx,%eax
508a58:	8b 50 08             	mov    0x8(%eax),%edx