50a79d:	74 20                	je     0x50a7bf
50a79f:	83 f9 05             	cmp    $0x5,%ecx
50a7a2:	74 1b                	je     0x50a7bf
50a7a4:	83 78 04 00          	cmpl   $0x0,0x4(%eax)
50a7a8:	74 15                	je     0x50a7bf
50a7aa:	6a 00                	push   $0x0
50a7ac:	8d 44 24 18          	lea    0x18(%esp),%eax
50a7b0:	6a 00                	push   $0x0
50a7b2:	50                   	push   %eax
50a7b3:	e8 f8 1c fe ff       	call   0x4ec4b0
50a7b8:	8b 44 24 20          	mov    0x20(%esp),%eax
50a7bc:	83 c4 0c             	add    $0xc,%esp
50a7bf:	89 38                	mov    %edi,(%eax)
50a7c1:	8b 44 24 14          	mov    0x14(%esp),%eax
50a7c5:	83 ff 01             	cmp    $0x1,%edi
50a7c8:	75 0a                	jne    0x50a7d4
50a7ca:	f7 de                	neg    %esi
50a7cc:	1b f6                	sbb    %esi,%esi
50a7ce:	81 e6 ff 00 00 00    	and    $0xff,%esi
50a7d4:	89 70 04             	mov    %esi,0x4(%eax)
50a7d7:	b8 01 00 00 00       	mov    $0x1,%eax
50a7dc:	5f                   	pop    %edi
50a7dd:	5e                   	pop    %esi
50a7de:	c3                   	ret
50a7df:	cc                   	int3
50a7e0:	8b 44 24 08          	mov    0x8(%esp),%eax
50a7e4:	85 c0                	test   %eax,%eax
50a7e6:	74 1a                	je     0x50a802
50a7e8:	83 38 10             	cmpl   $0x10,(%eax)
50a7eb:	75 15                	jne    0x50a802
50a7ed:	8b 40 04             	mov    0x4(%eax),%eax
50a7f0:	85 c0                	test   %eax,%eax
50a7f2:	74 0e                	je     0x50a802
50a7f4:	ff 74 24 04          	push   0x4(%esp)
50a7f8:	50                   	push   %eax
50a7f9:	e8 62 9e 02 00       	call   0x534660
50a7fe:	83 c4 08             	add    $0x8,%esp
50a801:	c3                   	ret
50a802:	33 c0                	xor    %eax,%eax
50a804:	c3                   	ret
50a805:	cc                   	int3
50a806:	cc                   	int3
50a807:	cc                   	int3
50a808:	cc                   	int3
50a809:	cc                   	int3
50a80a:	cc                   	int3
50a80b:	cc                   	int3
50a80c:	cc                   	int3
50a80d:	cc                   	int3
50a80e:	cc                   	int3
50a80f:	cc                   	int3
50a810:	56                   	push   %esi
50a811:	8b 74 24 08          	mov    0x8(%esp),%esi
50a815:	85 f6                	test   %esi,%esi
50a817:	74 7e                	je     0x50a897
50a819:	8b 46 14             	mov    0x14(%esi),%eax
50a81c:	a8 04                	test   $0x4,%al
50a81e:	74 36                	je     0x50a856
50a820:	68 64 01 00 00       	push   $0x164
50a825:	68 40 ae 62 00       	push   $0x62ae40
50a82a:	ff 36                	push   (%esi)
50a82c:	e8 4f 5f fd ff       	call   0x4e0780
50a831:	68 65 01 00 00       	push   $0x165
50a836:	68 40 ae 62 00       	push   $0x62ae40
50a83b:	ff 76 04             	push   0x4(%esi)
50a83e:	e8 3d 5f fd ff       	call   0x4e0780
50a843:	8b 46 14             	mov    0x14(%esi),%eax
50a846:	83 c4 18             	add    $0x18,%esp
50a849:	c7 46 04 00 00 00 00 	movl   $0x0,0x4(%esi)
50a850:	c7 06 00 00 00 00    	movl   $0x0,(%esi)
50a856:	a8 08                	test   $0x8,%al
50a858:	74 26                	je     0x50a880
50a85a:	68 6a 01 00 00       	push   $0x16a
50a85f:	68 40 ae 62 00       	push   $0x62ae40
50a864:	ff 76 10             	push   0x10(%esi)
50a867:	e8 14 5f fd ff       	call   0x4e0780
50a86c:	8b 46 14             	mov    0x14(%esi),%eax
50a86f:	83 c4 0c             	add    $0xc,%esp
50a872:	c7 46 10 00 00 00 00 	movl   $0x0,0x10(%esi)
50a879:	c7 46 0c 00 00 00 00 	movl   $0x0,0xc(%esi)
50a880:	a8 01                	test   $0x1,%al
50a882:	74 13                	je     0x50a897
50a884:	68 6f 01 00 00       	push   $0x16f
50a889:	68 40 ae 62 00       	push   $0x62ae40
50a88e:	56                   	push   %esi
50a88f:	e8 ec 5e fd ff       	call   0x4e0780
50a894:	83 c4 0c             	add    $0xc,%esp
50a897:	5e                   	pop    %esi
50a898:	c3                   	ret
50a899:	cc                   	int3
50a89a:	cc                   	int3
50a89b:	cc                   	int3
50a89c:	cc                   	int3
50a89d:	cc                   	int3
50a89e:	cc                   	int3
50a89f:	cc                   	int3
50a8a0:	68 53 01 00 00       	push   $0x153
50a8a5:	68 40 ae 62 00       	push   $0x62ae40
50a8aa:	6a 18                	push   $0x18
50a8ac:	e8 8f 61 fd ff       	call   0x4e0a40
50a8b1:	83 c4 0c             	add    $0xc,%esp
50a8b4:	85 c0                	test   %eax,%eax
50a8b6:	75 1b                	jne    0x50a8d3
50a8b8:	68 55 01 00 00       	push   $0x155
50a8bd:	68 40 ae 62 00       	push   $0x62ae40
50a8c2:	6a 41                	push   $0x41
50a8c4:	6a 7b                	push   $0x7b
50a8c6:	6a 0d                	push   $0xd
50a8c8:	e8 b3 e6 fc ff       	call   0x4d8f80
50a8cd:	83 c4 14             	add    $0x14,%esp
50a8d0:	33 c0                	xor    %eax,%eax
50a8d2:	c3                   	ret
50a8d3:	c7 40 14 01 00 00 00 	movl   $0x1,0x14(%eax)
50a8da:	c3                   	ret
50a8db:	cc                   	int3
50a8dc:	cc                   	int3
50a8dd:	cc                   	int3
50a8de:	cc                   	int3
50a8df:	cc                   	int3
50a8e0:	b8 38 00 00 00       	mov    $0x38,%eax
50a8e5:	e8 c6 6e 0c 00       	call   0x5d17b0
50a8ea:	a1 c0 14 69 00       	mov    0x6914c0,%eax
50a8ef:	33 c4                	xor    %esp,%eax
50a8f1:	89 44 24 34          	mov    %eax,0x34(%esp)
50a8f5:	8b 44 24 3c          	mov    0x3c(%esp),%eax
50a8f9:	8d 4c 24 1c          	lea    0x1c(%esp),%ecx
50a8fd:	8b 54 24 44          	mov    0x44(%esp),%edx
50a901:	53                   	push   %ebx
50a902:	56                   	push   %esi
50a903:	8b 74 24 50          	mov    0x50(%esp),%esi
50a907:	33 db                	xor    %ebx,%ebx
50a909:	57                   	push   %edi
50a90a:	33 ff                	xor    %edi,%edi
50a90c:	89 44 24 24          	mov    %eax,0x24(%esp)
50a910:	89 5c 24 14          	mov    %ebx,0x14(%esp)
50a914:	89 4c 24 0c          	mov    %ecx,0xc(%esp)
50a918:	c7 44 24 1c 18 00 00 	movl   $0x18,0x1c(%esp)
50a91f:	00
50a920:	85 f6                	test   %esi,%esi
50a922:	75 14                	jne    0x50a938
50a924:	5f                   	pop    %edi
50a925:	5e                   	pop    %esi
50a926:	33 c0                	xor    %eax,%eax
50a928:	5b                   	pop    %ebx
50a929:	8b 4c 24 34          	mov    0x34(%esp),%ecx
50a92d:	33 cc                	xor    %esp,%ecx
50a92f:	e8 f2 70 0c 00       	call   0x5d1a26
50a934:	83 c4 38             	add    $0x38,%esp
50a937:	c3                   	ret
50a938:	55                   	push   %ebp
50a939:	83 fe ff             	cmp    $0xffffffff,%esi
50a93c:	75 0e                	jne    0x50a94c
50a93e:	8b f2                	mov    %edx,%esi
50a940:	8d 6e 01             	lea    0x1(%esi),%ebp
50a943:	8a 06                	mov    (%esi),%al
50a945:	46                   	inc    %esi
50a946:	84 c0                	test   %al,%al
50a948:	75 f9                	jne    0x50a943
50a94a:	2b f5                	sub    %ebp,%esi
50a94c:	0f be 02             	movsbl (%edx),%eax
50a94f:	4e                   	dec    %esi
50a950:	83 c0 d0             	add    $0xffffffd0,%eax
50a953:	42                   	inc    %edx
50a954:	89 44 24 24          	mov    %eax,0x24(%esp)
50a958:	83 f8 02             	cmp    $0x2,%eax
50a95b:	0f 87 f7 02 00 00    	ja     0x50ac58
50a961:	85 f6                	test   %esi,%esi
50a963:	7f 11                	jg     0x50a976
50a965:	6a 4e                	push   $0x4e
50a967:	68 40 ae 62 00       	push   $0x62ae40
50a96c:	68 8a 00 00 00       	push   $0x8a
50a971:	e9 eb 02 00 00       	jmp    0x50ac61
50a976:	8b c2                	mov    %edx,%eax
50a978:	4e                   	dec    %esi
50a979:	89 74 24 58          	mov    %esi,0x58(%esp)
50a97d:	0f be 28             	movsbl (%eax),%ebp
50a980:	40                   	inc    %eax
50a981:	89 44 24 14          	mov    %eax,0x14(%esp)
50a985:	85 f6                	test   %esi,%esi
50a987:	0f 8e ad 02 00 00    	jle    0x50ac3a
50a98d:	0f 1f 00             	nopl   (%eax)
50a990:	83 fd 2e             	cmp    $0x2e,%ebp
50a993:	74 09                	je     0x50a99e
50a995:	83 fd 20             	cmp    $0x20,%ebp
50a998:	0f 85 1e 02 00 00    	jne    0x50abbc
50a99e:	33 d2                	xor    %edx,%edx
50a9a0:	33 db                	xor    %ebx,%ebx
50a9a2:	89 54 24 1c          	mov    %edx,0x1c(%esp)
50a9a6:	85 f6                	test   %esi,%esi
50a9a8:	0f 8e b1 00 00 00    	jle    0x50aa5f
50a9ae:	66 90                	xchg   %ax,%ax
50a9b0:	0f be 28             	movsbl (%eax),%ebp
50a9b3:	4e                   	dec    %esi
50a9b4:	40                   	inc    %eax
50a9b5:	89 74 24 58          	mov    %esi,0x58(%esp)
50a9b9:	89 44 24 14          	mov    %eax,0x14(%esp)
50a9bd:	83 fd 20             	cmp    $0x20,%ebp
50a9c0:	0f 84 95 00 00 00    	je     0x50aa5b
50a9c6:	83 fd 2e             	cmp    $0x2e,%ebp
50a9c9:	0f 84 8c 00 00 00    	je     0x50aa5b
50a9cf:	6a 04                	push   $0x4
50a9d1:	55                   	push   %ebp
50a9d2:	e8 c9 96 fd ff       	call   0x4e40a0
50a9d7:	83 c4 08             	add    $0x8,%esp
50a9da:	85 c0                	test   %eax,%eax
50a9dc:	0f 84 e8 01 00 00    	je     0x50abca
50a9e2:	8b 54 24 1c          	mov    0x1c(%esp),%edx
50a9e6:	85 d2                	test   %edx,%edx
50a9e8:	75 39                	jne    0x50aa23
50a9ea:	81 fb 91 99 99 19    	cmp    $0x19999991,%ebx
50a9f0:	0f 82 a4 00 00 00    	jb     0x50aa9a
50a9f6:	c7 44 24 1c 01 00 00 	movl   $0x1,0x1c(%esp)
50a9fd:	00
50a9fe:	85 ff                	test   %edi,%edi
50aa00:	75 0f                	jne    0x50aa11
50aa02:	e8 d9 f3 fc ff       	call   0x4d9de0
50aa07:	8b f8                	mov    %eax,%edi
50aa09:	85 ff                	test   %edi,%edi
50aa0b:	0f 84 ed 01 00 00    	je     0x50abfe
50aa11:	53                   	push   %ebx
50aa12:	57                   	push   %edi
50aa13:	e8 c8 f6 fc ff       	call   0x4da0e0
50aa18:	83 c4 08             	add    $0x8,%esp
50aa1b:	85 c0                	test   %eax,%eax
50aa1d:	0f 84 db 01 00 00    	je     0x50abfe
50aa23:	6a 0a                	push   $0xa
50aa25:	57                   	push   %edi
50aa26:	e8 05 1e ff ff       	call   0x4fc830
50aa2b:	83 c4 08             	add    $0x8,%esp
50aa2e:	85 c0                	test   %eax,%eax
50aa30:	0f 84 c8 01 00 00    	je     0x50abfe
50aa36:	8d 45 d0             	lea    -0x30(%ebp),%eax
50aa39:	50                   	push   %eax
50aa3a:	57                   	push   %edi
50aa3b:	e8 50 1b ff ff       	call   0x4fc590
50aa40:	83 c4 08             	add    $0x8,%esp
50aa43:	85 c0                	test   %eax,%eax
50aa45:	0f 84 b3 01 00 00    	je     0x50abfe
50aa4b:	8b 54 24 1c          	mov    0x1c(%esp),%edx
50aa4f:	8b 44 24 14          	mov    0x14(%esp),%eax
50aa53:	85 f6                	test   %esi,%esi
50aa55:	0f 8f 55 ff ff ff    	jg     0x50a9b0
50aa5b:	8b 4c 24 10          	mov    0x10(%esp),%ecx
50aa5f:	83 7c 24 18 00       	cmpl   $0x0,0x18(%esp)
50aa64:	0f 85 94 00 00 00    	jne    0x50aafe
50aa6a:	8b 44 24 24          	mov    0x24(%esp),%eax
50aa6e:	83 f8 02             	cmp    $0x2,%eax
50aa71:	7d 09                	jge    0x50aa7c
50aa73:	83 fb 28             	cmp    $0x28,%ebx
50aa76:	0f 83 5c 01 00 00    	jae    0x50abd8
50aa7c:	8d 04 80             	lea    (%eax,%eax,4),%eax
50aa7f:	c1 e0 03             	shl    $0x3,%eax
50aa82:	85 d2                	test   %edx,%edx
50aa84:	74 22                	je     0x50aaa8
50aa86:	50                   	push   %eax
50aa87:	57                   	push   %edi
50aa88:	e8 03 1b ff ff       	call   0x4fc590
50aa8d:	83 c4 08             	add    $0x8,%esp
50aa90:	85 c0                	test   %eax,%eax
50aa92:	0f 84 66 01 00 00    	je     0x50abfe
50aa98:	eb 68                	jmp    0x50ab02
50aa9a:	8d 04 9b             	lea    (%ebx,%ebx,4),%eax
50aa9d:	8d 1c 45 d0 ff ff ff 	lea    -0x30(,%eax,2),%ebx
50aaa4:	03 dd                	add    %ebp,%ebx
50aaa6:	eb a7                	jmp    0x50aa4f
50aaa8:	03 d8                	add    %eax,%ebx
50aaaa:	33 f6                	xor    %esi,%esi
50aaac:	0f 1f 40 00          	nopl   0x0(%eax)
50aab0:	8a c3                	mov    %bl,%al
50aab2:	c1 eb 07             	shr    $0x7,%ebx
50aab5:	24 7f                	and    $0x7f,%al
50aab7:	88 04 0e             	mov    %al,(%esi,%ecx,1)
50aaba:	46                   	inc    %esi
50aabb:	85 db                	test   %ebx,%ebx
50aabd:	75 f1                	jne    0x50aab0
50aabf:	8b 5c 24 18          	mov    0x18(%esp),%ebx
50aac3:	8b 54 24 28          	mov    0x28(%esp),%edx
50aac7:	8d 04 1e             	lea    (%esi,%ebx,1),%eax
50aaca:	85 d2                	test   %edx,%edx
50aacc:	0f 84 d3 00 00 00    	je     0x50aba5
50aad2:	3b 44 24 50          	cmp    0x50(%esp),%eax
50aad6:	0f 8f 0a 01 00 00    	jg     0x50abe6
50aadc:	4e                   	dec    %esi
50aadd:	85 f6                	test   %esi,%esi
50aadf:	7e 0e                	jle    0x50aaef
50aae1:	8a 04 0e             	mov    (%esi,%ecx,1),%al
50aae4:	4e                   	dec    %esi
50aae5:	0c 80                	or     $0x80,%al
50aae7:	88 04 1a             	mov    %al,(%edx,%ebx,1)
50aaea:	43                   	inc    %ebx
50aaeb:	85 f6                	test   %esi,%esi
50aaed:	7f f2                	jg     0x50aae1
50aaef:	8a 01                	mov    (%ecx),%al
50aaf1:	88 04 1a             	mov    %al,(%edx,%ebx,1)
50aaf4:	43                   	inc    %ebx
50aaf5:	89 5c 24 18          	mov    %ebx,0x18(%esp)
50aaf9:	e9 ad 00 00 00       	jmp    0x50abab
50aafe:	85 d2                	test   %edx,%edx
50ab00:	74 a8                	je     0x50aaaa
50ab02:	57                   	push   %edi
50ab03:	e8 18 f3 fc ff       	call   0x4d9e20
50ab08:	83 c4 04             	add    $0x4,%esp
50ab0b:	8d 48 06             	lea    0x6(%eax),%ecx
50ab0e:	b8 93 24 49 92       	mov    $0x92492493,%eax
50ab13:	f7 e9                	imul   %ecx
50ab15:	03 d1                	add    %ecx,%edx
50ab17:	c1 fa 02             	sar    $0x2,%edx
50ab1a:	8b da                	mov    %edx,%ebx
50ab1c:	c1 eb 1f             	shr    $0x1f,%ebx
50ab1f:	03 da                	add    %edx,%ebx
50ab21:	3b 5c 24 20          	cmp    0x20(%esp),%ebx
50ab25:	7e 49                	jle    0x50ab70
50ab27:	8b 44 24 10          	mov    0x10(%esp),%eax
50ab2b:	8d 4c 24 2c          	lea    0x2c(%esp),%ecx
50ab2f:	3b c1                	cmp    %ecx,%eax
50ab31:	74 13                	je     0x50ab46
50ab33:	68 88 00 00 00       	push   $0x88
50ab38:	68 40 ae 62 00       	push   $0x62ae40
50ab3d:	50                   	push   %eax
50ab3e:	e8 3d 5c fd ff       	call   0x4e0780
50ab43:	83 c4 0c             	add    $0xc,%esp
50ab46:	68 8a 00 00 00       	push   $0x8a
50ab4b:	8d 43 20             	lea    0x20(%ebx),%eax
50ab4e:	68 40 ae 62 00       	push   $0x62ae40
50ab53:	50                   	push   %eax
50ab54:	89 44 24 2c          	mov    %eax,0x2c(%esp)
50ab58:	e8 f3 5b fd ff       	call   0x4e0750
50ab5d:	8b c8                	mov    %eax,%ecx
50ab5f:	83 c4 0c             	add    $0xc,%esp
50ab62:	89 4c 24 10          	mov    %ecx,0x10(%esp)
50ab66:	85 c9                	test   %ecx,%ecx
50ab68:	0f 84 94 00 00 00    	je     0x50ac02
50ab6e:	eb 04                	jmp    0x50ab74
50ab70:	8b 4c 24 10          	mov    0x10(%esp),%ecx
50ab74:	33 f6                	xor    %esi,%esi
50ab76:	85 db                	test   %ebx,%ebx
50ab78:	0f 84 41 ff ff ff    	je     0x50aabf
50ab7e:	66 90                	xchg   %ax,%ax
50ab80:	68 80 00 00 00       	push   $0x80
50ab85:	57                   	push   %edi
50ab86:	4b                   	dec    %ebx
50ab87:	e8 64 1b ff ff       	call   0x4fc6f0
50ab8c:	8b 4c 24 18          	mov    0x18(%esp),%ecx
50ab90:	83 c4 08             	add    $0x8,%esp
50ab93:	83 f8 ff             	cmp    $0xffffffff,%eax
50ab96:	74 6a                	je     0x50ac02
50ab98:	88 04 0e             	mov    %al,(%esi,%ecx,1)
50ab9b:	46                   	inc    %esi
50ab9c:	85 db                	test   %ebx,%ebx
50ab9e:	75 e0                	jne    0x50ab80