50966a:	83 c4 08             	add    $0x8,%esp
50966d:	c3                   	ret
50966e:	85 d2                	test   %edx,%edx
509670:	75 19                	jne    0x50968b
509672:	81 f9 00 00 00 80    	cmp    $0x80000000,%ecx
509678:	75 11                	jne    0x50968b
50967a:	8b 44 24 10          	mov    0x10(%esp),%eax
50967e:	5e                   	pop    %esi
50967f:	89 10                	mov    %edx,(%eax)
509681:	89 48 04             	mov    %ecx,0x4(%eax)
509684:	8d 42 01             	lea    0x1(%edx),%eax
509687:	83 c4 08             	add    $0x8,%esp
50968a:	c3                   	ret
50968b:	68 09 01 00 00       	push   $0x109
509690:	68 14 ae 62 00       	push   $0x62ae14
509695:	68 e0 00 00 00       	push   $0xe0
50969a:	eb 35                	jmp    0x5096d1
50969c:	81 f9 ff ff ff 7f    	cmp    $0x7fffffff,%ecx
5096a2:	77 1e                	ja     0x5096c2
5096a4:	8b 54 24 04          	mov    0x4(%esp),%edx
5096a8:	72 05                	jb     0x5096af
5096aa:	83 fa ff             	cmp    $0xffffffff,%edx
5096ad:	77 13                	ja     0x5096c2
5096af:	8b 44 24 10          	mov    0x10(%esp),%eax
5096b3:	5e                   	pop    %esi
5096b4:	89 10                	mov    %edx,(%eax)
5096b6:	89 48 04             	mov    %ecx,0x4(%eax)
5096b9:	b8 01 00 00 00       	mov    $0x1,%eax
5096be:	83 c4 08             	add    $0x8,%esp
5096c1:	c3                   	ret
5096c2:	68 10 01 00 00       	push   $0x110
5096c7:	68 14 ae 62 00       	push   $0x62ae14
5096cc:	68 df 00 00 00       	push   $0xdf
5096d1:	68 e0 00 00 00       	push   $0xe0
5096d6:	6a 0d                	push   $0xd
5096d8:	e8 a3 f8 fc ff       	call   0x4d8f80
5096dd:	83 c4 14             	add    $0x14,%esp
5096e0:	33 c0                	xor    %eax,%eax
5096e2:	5e                   	pop    %esi
5096e3:	83 c4 08             	add    $0x8,%esp
5096e6:	c3                   	ret
5096e7:	cc                   	int3
5096e8:	cc                   	int3
5096e9:	cc                   	int3
5096ea:	cc                   	int3
5096eb:	cc                   	int3
5096ec:	cc                   	int3
5096ed:	cc                   	int3
5096ee:	cc                   	int3
5096ef:	cc                   	int3
5096f0:	b8 0c 00 00 00       	mov    $0xc,%eax
5096f5:	e8 b6 80 0c 00       	call   0x5d17b0
5096fa:	a1 c0 14 69 00       	mov    0x6914c0,%eax
5096ff:	33 c4                	xor    %esp,%eax
509701:	89 44 24 08          	mov    %eax,0x8(%esp)
509705:	8b 44 24 18          	mov    0x18(%esp),%eax
509709:	8b 54 24 14          	mov    0x14(%esp),%edx
50970d:	56                   	push   %esi
50970e:	57                   	push   %edi
50970f:	8b 7c 24 18          	mov    0x18(%esp),%edi
509713:	85 c0                	test   %eax,%eax
509715:	7f 36                	jg     0x50974d
509717:	7c 04                	jl     0x50971d
509719:	85 d2                	test   %edx,%edx
50971b:	73 30                	jae    0x50974d
50971d:	f7 da                	neg    %edx
50971f:	be 08 00 00 00       	mov    $0x8,%esi
509724:	83 d0 00             	adc    $0x0,%eax
509727:	f7 d8                	neg    %eax
509729:	0f 1f 80 00 00 00 00 	nopl   0x0(%eax)
509730:	4e                   	dec    %esi
509731:	88 54 34 08          	mov    %dl,0x8(%esp,%esi,1)
509735:	0f ac c2 08          	shrd   $0x8,%eax,%edx
509739:	c1 e8 08             	shr    $0x8,%eax
50973c:	8b ca                	mov    %edx,%ecx
50973e:	0b c8                	or     %eax,%ecx
509740:	75 ee                	jne    0x509730
509742:	8b 44 24 24          	mov    0x24(%esp),%eax
509746:	0d 00 01 00 00       	or     $0x100,%eax
50974b:	eb 20                	jmp    0x50976d
50974d:	be 08 00 00 00       	mov    $0x8,%esi
509752:	4e                   	dec    %esi
509753:	88 54 34 08          	mov    %dl,0x8(%esp,%esi,1)
509757:	0f ac c2 08          	shrd   $0x8,%eax,%edx
50975b:	c1 e8 08             	shr    $0x8,%eax
50975e:	8b ca                	mov    %edx,%ecx
509760:	0b c8                	or     %eax,%ecx
509762:	75 ee                	jne    0x509752
509764:	8b 44 24 24          	mov    0x24(%esp),%eax
509768:	25 ff fe ff ff       	and    $0xfffffeff,%eax
50976d:	89 47 04             	mov    %eax,0x4(%edi)
509770:	b8 08 00 00 00       	mov    $0x8,%eax
509775:	2b c6                	sub    %esi,%eax
509777:	50                   	push   %eax
509778:	8d 44 24 0c          	lea    0xc(%esp),%eax
50977c:	03 c6                	add    %esi,%eax
50977e:	50                   	push   %eax
50977f:	57                   	push   %edi
509780:	e8 bb 0a 00 00       	call   0x50a240
509785:	8b 4c 24 1c          	mov    0x1c(%esp),%ecx
509789:	83 c4 0c             	add    $0xc,%esp
50978c:	5f                   	pop    %edi
50978d:	5e                   	pop    %esi
50978e:	33 cc                	xor    %esp,%ecx
509790:	e8 91 82 0c 00       	call   0x5d1a26
509795:	83 c4 0c             	add    $0xc,%esp
509798:	c3                   	ret
509799:	cc                   	int3
50979a:	cc                   	int3
50979b:	cc                   	int3
50979c:	cc                   	int3
50979d:	cc                   	int3
50979e:	cc                   	int3
50979f:	cc                   	int3
5097a0:	56                   	push   %esi
5097a1:	8b 74 24 08          	mov    0x8(%esp),%esi
5097a5:	8b 46 04             	mov    0x4(%esi),%eax
5097a8:	25 ff fe ff ff       	and    $0xfffffeff,%eax
5097ad:	3b 44 24 10          	cmp    0x10(%esp),%eax
5097b1:	74 22                	je     0x5097d5
5097b3:	68 f3 01 00 00       	push   $0x1f3
5097b8:	68 14 ae 62 00       	push   $0x62ae14
5097bd:	68 e1 00 00 00       	push   $0xe1
5097c2:	68 e4 00 00 00       	push   $0xe4
5097c7:	6a 0d                	push   $0xd
5097c9:	e8 b2 f7 fc ff       	call   0x4d8f80
5097ce:	83 c4 14             	add    $0x14,%esp
5097d1:	33 c0                	xor    %eax,%eax
5097d3:	5e                   	pop    %esi
5097d4:	c3                   	ret
5097d5:	57                   	push   %edi
5097d6:	ff 74 24 10          	push   0x10(%esp)
5097da:	ff 36                	push   (%esi)
5097dc:	ff 76 08             	push   0x8(%esi)
5097df:	e8 8c fe fc ff       	call   0x4d9670
5097e4:	8b f8                	mov    %eax,%edi
5097e6:	83 c4 0c             	add    $0xc,%esp
5097e9:	85 ff                	test   %edi,%edi
5097eb:	75 20                	jne    0x50980d
5097ed:	68 f9 01 00 00       	push   $0x1f9
5097f2:	68 14 ae 62 00       	push   $0x62ae14
5097f7:	6a 69                	push   $0x69
5097f9:	68 e4 00 00 00       	push   $0xe4
5097fe:	6a 0d                	push   $0xd
509800:	e8 7b f7 fc ff       	call   0x4d8f80
509805:	83 c4 14             	add    $0x14,%esp
509808:	33 c0                	xor    %eax,%eax
50980a:	5f                   	pop    %edi
50980b:	5e                   	pop    %esi
50980c:	c3                   	ret
50980d:	f7 46 04 00 01 00 00 	testl  $0x100,0x4(%esi)
509814:	74 0b                	je     0x509821
509816:	6a 01                	push   $0x1
509818:	57                   	push   %edi
509819:	e8 92 08 fd ff       	call   0x4da0b0
50981e:	83 c4 08             	add    $0x8,%esp
509821:	8b c7                	mov    %edi,%eax
509823:	5f                   	pop    %edi
509824:	5e                   	pop    %esi
509825:	c3                   	ret
509826:	cc                   	int3
509827:	cc                   	int3
509828:	cc                   	int3
509829:	cc                   	int3
50982a:	cc                   	int3
50982b:	cc                   	int3
50982c:	cc                   	int3
50982d:	cc                   	int3
50982e:	cc                   	int3
50982f:	cc                   	int3
509830:	53                   	push   %ebx
509831:	55                   	push   %ebp
509832:	56                   	push   %esi
509833:	57                   	push   %edi
509834:	8b 7c 24 18          	mov    0x18(%esp),%edi
509838:	85 ff                	test   %edi,%edi
50983a:	75 34                	jne    0x509870
50983c:	ff 74 24 1c          	push   0x1c(%esp)
509840:	e8 fb 0a 00 00       	call   0x50a340
509845:	8b f0                	mov    %eax,%esi
509847:	83 c4 04             	add    $0x4,%esp
50984a:	85 f6                	test   %esi,%esi
50984c:	75 2b                	jne    0x509879
50984e:	68 cf 01 00 00       	push   $0x1cf
509853:	68 14 ae 62 00       	push   $0x62ae14
509858:	6a 3a                	push   $0x3a
50985a:	68 e5 00 00 00       	push   $0xe5
50985f:	6a 0d                	push   $0xd
509861:	e8 1a f7 fc ff       	call   0x4d8f80
509866:	83 c4 14             	add    $0x14,%esp
509869:	33 c0                	xor    %eax,%eax
50986b:	5f                   	pop    %edi
50986c:	5e                   	pop    %esi
50986d:	5d                   	pop    %ebp
50986e:	5b                   	pop    %ebx
50986f:	c3                   	ret
509870:	8b 44 24 1c          	mov    0x1c(%esp),%eax
509874:	8b f7                	mov    %edi,%esi
509876:	89 47 04             	mov    %eax,0x4(%edi)
509879:	8b 5c 24 14          	mov    0x14(%esp),%ebx
50987d:	53                   	push   %ebx
50987e:	e8 5d 04 fd ff       	call   0x4d9ce0
509883:	83 c4 04             	add    $0x4,%esp
509886:	85 c0                	test   %eax,%eax
509888:	74 14                	je     0x50989e
50988a:	53                   	push   %ebx
50988b:	e8 d0 04 fd ff       	call   0x4d9d60
509890:	83 c4 04             	add    $0x4,%esp
509893:	85 c0                	test   %eax,%eax
509895:	75 07                	jne    0x50989e
509897:	81 4e 04 02 01 00 00 	orl    $0x102,0x4(%esi)
50989e:	53                   	push   %ebx
50989f:	e8 7c 05 fd ff       	call   0x4d9e20
5098a4:	83 c0 07             	add    $0x7,%eax
5098a7:	99                   	cltd
5098a8:	83 e2 07             	and    $0x7,%edx
5098ab:	8d 2c 02             	lea    (%edx,%eax,1),%ebp
5098ae:	b8 01 00 00 00       	mov    $0x1,%eax
5098b3:	c1 fd 03             	sar    $0x3,%ebp
5098b6:	85 ed                	test   %ebp,%ebp
5098b8:	0f 44 e8             	cmove  %eax,%ebp
5098bb:	55                   	push   %ebp
5098bc:	6a 00                	push   $0x0
5098be:	56                   	push   %esi
5098bf:	e8 7c 09 00 00       	call   0x50a240
5098c4:	83 c4 10             	add    $0x10,%esp
5098c7:	85 c0                	test   %eax,%eax
5098c9:	75 2f                	jne    0x5098fa
5098cb:	68 dc 01 00 00       	push   $0x1dc
5098d0:	68 14 ae 62 00       	push   $0x62ae14
5098d5:	6a 41                	push   $0x41
5098d7:	68 e5 00 00 00       	push   $0xe5
5098dc:	6a 0d                	push   $0xd
5098de:	e8 9d f6 fc ff       	call   0x4d8f80
5098e3:	83 c4 14             	add    $0x14,%esp
5098e6:	3b f7                	cmp    %edi,%esi
5098e8:	74 09                	je     0x5098f3
5098ea:	56                   	push   %esi
5098eb:	e8 90 1e fe ff       	call   0x4eb780
5098f0:	83 c4 04             	add    $0x4,%esp
5098f3:	5f                   	pop    %edi
5098f4:	5e                   	pop    %esi
5098f5:	5d                   	pop    %ebp
5098f6:	33 c0                	xor    %eax,%eax
5098f8:	5b                   	pop    %ebx
5098f9:	c3                   	ret
5098fa:	53                   	push   %ebx
5098fb:	e8 60 04 fd ff       	call   0x4d9d60
509900:	8b 4e 08             	mov    0x8(%esi),%ecx
509903:	83 c4 04             	add    $0x4,%esp
509906:	85 c0                	test   %eax,%eax
509908:	74 0c                	je     0x509916
50990a:	5f                   	pop    %edi
50990b:	c6 01 00             	movb   $0x0,(%ecx)
50990e:	8b c6                	mov    %esi,%eax
509910:	89 2e                	mov    %ebp,(%esi)
509912:	5e                   	pop    %esi
509913:	5d                   	pop    %ebp
509914:	5b                   	pop    %ebx
509915:	c3                   	ret
509916:	51                   	push   %ecx
509917:	53                   	push   %ebx
509918:	e8 e3 fe fc ff       	call   0x4d9800
50991d:	83 c4 08             	add    $0x8,%esp
509920:	8b e8                	mov    %eax,%ebp
509922:	89 2e                	mov    %ebp,(%esi)
509924:	8b c6                	mov    %esi,%eax
509926:	5f                   	pop    %edi
509927:	5e                   	pop    %esi
509928:	5d                   	pop    %ebp
509929:	5b                   	pop    %ebx
50992a:	c3                   	ret
50992b:	cc                   	int3
50992c:	cc                   	int3
50992d:	cc                   	int3
50992e:	cc                   	int3
50992f:	cc                   	int3
509930:	b8 04 00 00 00       	mov    $0x4,%eax
509935:	e8 76 7e 0c 00       	call   0x5d17b0
50993a:	53                   	push   %ebx
50993b:	8b 5c 24 10          	mov    0x10(%esp),%ebx
50993f:	55                   	push   %ebp
509940:	8b 6c 24 18          	mov    0x18(%esp),%ebp
509944:	56                   	push   %esi
509945:	57                   	push   %edi
509946:	55                   	push   %ebp
509947:	ff 33                	push   (%ebx)
509949:	6a 00                	push   $0x0
50994b:	6a 00                	push   $0x0
50994d:	e8 ae 00 00 00       	call   0x509a00
509952:	83 c4 10             	add    $0x10,%esp
509955:	89 44 24 10          	mov    %eax,0x10(%esp)
509959:	85 c0                	test   %eax,%eax
50995b:	74 60                	je     0x5099bd
50995d:	8b 7c 24 18          	mov    0x18(%esp),%edi
509961:	85 ff                	test   %edi,%edi
509963:	74 06                	je     0x50996b
509965:	8b 37                	mov    (%edi),%esi
509967:	85 f6                	test   %esi,%esi
509969:	75 16                	jne    0x509981
50996b:	e8 c0 1e fe ff       	call   0x4eb830
509970:	8b f0                	mov    %eax,%esi
509972:	85 f6                	test   %esi,%esi
509974:	74 47                	je     0x5099bd
509976:	8b 44 24 10          	mov    0x10(%esp),%eax
50997a:	c7 46 04 02 00 00 00 	movl   $0x2,0x4(%esi)
509981:	50                   	push   %eax
509982:	6a 00                	push   $0x0
509984:	56                   	push   %esi
509985:	e8 b6 08 00 00       	call   0x50a240
50998a:	83 c4 0c             	add    $0xc,%esp
50998d:	85 c0                	test   %eax,%eax
50998f:	75 34                	jne    0x5099c5
509991:	68 39 01 00 00       	push   $0x139
509996:	68 14 ae 62 00       	push   $0x62ae14
50999b:	6a 41                	push   $0x41
50999d:	68 c2 00 00 00       	push   $0xc2
5099a2:	6a 0d                	push   $0xd
5099a4:	e8 d7 f5 fc ff       	call   0x4d8f80
5099a9:	83 c4 14             	add    $0x14,%esp
5099ac:	85 ff                	test   %edi,%edi
5099ae:	74 04                	je     0x5099b4
5099b0:	39 37                	cmp    %esi,(%edi)
5099b2:	74 09                	je     0x5099bd
5099b4:	56                   	push   %esi
5099b5:	e8 c6 1d fe ff       	call   0x4eb780
5099ba:	83 c4 04             	add    $0x4,%esp
5099bd:	5f                   	pop    %edi
5099be:	5e                   	pop    %esi
5099bf:	5d                   	pop    %ebp
5099c0:	33 c0                	xor    %eax,%eax
5099c2:	5b                   	pop    %ebx
5099c3:	59                   	pop    %ecx
5099c4:	c3                   	ret
5099c5:	55                   	push   %ebp
5099c6:	ff 33                	push   (%ebx)
5099c8:	8d 44 24 18          	lea    0x18(%esp),%eax
5099cc:	50                   	push   %eax
5099cd:	ff 76 08             	push   0x8(%esi)
5099d0:	e8 2b 00 00 00       	call   0x509a00
5099d5:	83 c4 10             	add    $0x10,%esp
5099d8:	83 7c 24 10 00       	cmpl   $0x0,0x10(%esp)
5099dd:	74 07                	je     0x5099e6
5099df:	81 4e 04 00 01 00 00 	orl    $0x100,0x4(%esi)
5099e6:	01 2b                	add    %ebp,(%ebx)
5099e8:	85 ff                	test   %edi,%edi
5099ea:	74 02                	je     0x5099ee
5099ec:	89 37                	mov    %esi,(%edi)
5099ee:	5f                   	pop    %edi
5099ef:	8b c6                	mov    %esi,%eax