4998d5:	c7 45 fc 00 00 00 00 	movl   $0x0,-0x4(%ebp)
4998dc:	50                   	push   %eax
4998dd:	e8 5e 3f fb ff       	call   0x44d840
4998e2:	83 c4 04             	add    $0x4,%esp
4998e5:	89 45 08             	mov    %eax,0x8(%ebp)
4998e8:	85 f6                	test   %esi,%esi
4998ea:	74 13                	je     0x4998ff
4998ec:	8b 16                	mov    (%esi),%edx
4998ee:	8b ce                	mov    %esi,%ecx
4998f0:	ff 52 08             	call   *0x8(%edx)
4998f3:	85 c0                	test   %eax,%eax
4998f5:	74 08                	je     0x4998ff
4998f7:	8b 10                	mov    (%eax),%edx
4998f9:	8b c8                	mov    %eax,%ecx
4998fb:	6a 01                	push   $0x1
4998fd:	ff 12                	call   *(%edx)
4998ff:	8b 07                	mov    (%edi),%eax
499901:	c7 45 fc 01 00 00 00 	movl   $0x1,-0x4(%ebp)
499908:	8b 40 04             	mov    0x4(%eax),%eax
49990b:	8b 4c 38 38          	mov    0x38(%eax,%edi,1),%ecx
49990f:	8b 41 1c             	mov    0x1c(%ecx),%eax
499912:	8b 10                	mov    (%eax),%edx
499914:	85 d2                	test   %edx,%edx
499916:	74 0d                	je     0x499925
499918:	8b 41 2c             	mov    0x2c(%ecx),%eax
49991b:	83 38 00             	cmpl   $0x0,(%eax)
49991e:	7e 05                	jle    0x499925
499920:	0f b6 02             	movzbl (%edx),%eax
499923:	eb 0b                	jmp    0x499930
499925:	8b 01                	mov    (%ecx),%eax
499927:	ff 50 18             	call   *0x18(%eax)
49992a:	66 0f 1f 44 00 00    	nopw   0x0(%eax,%eax,1)
499930:	83 f8 ff             	cmp    $0xffffffff,%eax
499933:	75 07                	jne    0x49993c
499935:	b3 01                	mov    $0x1,%bl
499937:	e9 b5 00 00 00       	jmp    0x4999f1
49993c:	0f b6 c8             	movzbl %al,%ecx
49993f:	8b 45 08             	mov    0x8(%ebp),%eax
499942:	8b 40 0c             	mov    0xc(%eax),%eax
499945:	f6 04 48 48          	testb  $0x48,(%eax,%ecx,2)
499949:	0f 84 a2 00 00 00    	je     0x4999f1
49994f:	8b 07                	mov    (%edi),%eax
499951:	8b 40 04             	mov    0x4(%eax),%eax
499954:	8b 74 38 38          	mov    0x38(%eax,%edi,1),%esi
499958:	8b 46 1c             	mov    0x1c(%esi),%eax
49995b:	8b 08                	mov    (%eax),%ecx
49995d:	85 c9                	test   %ecx,%ecx
49995f:	74 07                	je     0x499968
499961:	8b 46 2c             	mov    0x2c(%esi),%eax
499964:	8b 00                	mov    (%eax),%eax
499966:	eb 02                	jmp    0x49996a
499968:	33 c0                	xor    %eax,%eax
49996a:	83 f8 01             	cmp    $0x1,%eax
49996d:	7e 12                	jle    0x499981
49996f:	8b 46 2c             	mov    0x2c(%esi),%eax
499972:	ff 08                	decl   (%eax)
499974:	8b 46 1c             	mov    0x1c(%esi),%eax
499977:	8b 08                	mov    (%eax),%ecx
499979:	41                   	inc    %ecx
49997a:	89 08                	mov    %ecx,(%eax)
49997c:	0f b6 01             	movzbl (%ecx),%eax
49997f:	eb af                	jmp    0x499930
499981:	85 c9                	test   %ecx,%ecx
499983:	74 1b                	je     0x4999a0
499985:	8b 4e 2c             	mov    0x2c(%esi),%ecx
499988:	8b 01                	mov    (%ecx),%eax
49998a:	85 c0                	test   %eax,%eax
49998c:	7e 12                	jle    0x4999a0
49998e:	48                   	dec    %eax
49998f:	89 01                	mov    %eax,(%ecx)
499991:	8b 4e 1c             	mov    0x1c(%esi),%ecx
499994:	8b 11                	mov    (%ecx),%edx
499996:	8d 42 01             	lea    0x1(%edx),%eax
499999:	89 01                	mov    %eax,(%ecx)
49999b:	0f b6 02             	movzbl (%edx),%eax
49999e:	eb 07                	jmp    0x4999a7
4999a0:	8b 06                	mov    (%esi),%eax
4999a2:	8b ce                	mov    %esi,%ecx
4999a4:	ff 50 1c             	call   *0x1c(%eax)
4999a7:	83 f8 ff             	cmp    $0xffffffff,%eax
4999aa:	75 04                	jne    0x4999b0
4999ac:	0b c0                	or     %eax,%eax
4999ae:	eb 80                	jmp    0x499930
4999b0:	8b 46 1c             	mov    0x1c(%esi),%eax
4999b3:	8b 08                	mov    (%eax),%ecx
4999b5:	85 c9                	test   %ecx,%ecx
4999b7:	74 10                	je     0x4999c9
4999b9:	8b 46 2c             	mov    0x2c(%esi),%eax
4999bc:	83 38 00             	cmpl   $0x0,(%eax)
4999bf:	7e 08                	jle    0x4999c9
4999c1:	0f b6 01             	movzbl (%ecx),%eax
4999c4:	e9 67 ff ff ff       	jmp    0x499930
4999c9:	8b 06                	mov    (%esi),%eax
4999cb:	8b ce                	mov    %esi,%ecx
4999cd:	e9 55 ff ff ff       	jmp    0x499927
4999d2:	8b 55 e8             	mov    -0x18(%ebp),%edx
4999d5:	6a 01                	push   $0x1
4999d7:	6a 04                	push   $0x4
4999d9:	8b 02                	mov    (%edx),%eax
4999db:	8b 48 04             	mov    0x4(%eax),%ecx
4999de:	03 ca                	add    %edx,%ecx
4999e0:	e8 ab 7f fb ff       	call   0x451990
4999e5:	b8 eb 99 49 00       	mov    $0x4999eb,%eax
4999ea:	c3                   	ret
4999eb:	8b 7d e8             	mov    -0x18(%ebp),%edi
4999ee:	8a 5d ef             	mov    -0x11(%ebp),%bl
4999f1:	c7 45 fc ff ff ff ff 	movl   $0xffffffff,-0x4(%ebp)
4999f8:	84 db                	test   %bl,%bl
4999fa:	74 27                	je     0x499a23
4999fc:	8b 07                	mov    (%edi),%eax
4999fe:	33 d2                	xor    %edx,%edx
499a00:	8b 48 04             	mov    0x4(%eax),%ecx
499a03:	b8 04 00 00 00       	mov    $0x4,%eax
499a08:	03 cf                	add    %edi,%ecx
499a0a:	39 51 38             	cmp    %edx,0x38(%ecx)
499a0d:	0f 45 c2             	cmovne %edx,%eax
499a10:	0b 41 0c             	or     0xc(%ecx),%eax
499a13:	83 e0 14             	and    $0x14,%eax
499a16:	83 c8 03             	or     $0x3,%eax
499a19:	89 41 0c             	mov    %eax,0xc(%ecx)
499a1c:	8b 49 10             	mov    0x10(%ecx),%ecx
499a1f:	23 c8                	and    %eax,%ecx
499a21:	75 63                	jne    0x499a86
499a23:	8b 07                	mov    (%edi),%eax
499a25:	8b 40 04             	mov    0x4(%eax),%eax
499a28:	83 7c 38 0c 00       	cmpl   $0x0,0xc(%eax,%edi,1)
499a2d:	0f 94 c0             	sete   %al
499a30:	8b 4d f4             	mov    -0xc(%ebp),%ecx
499a33:	64 89 0d 00 00 00 00 	mov    %ecx,%fs:0x0
499a3a:	59                   	pop    %ecx
499a3b:	5f                   	pop    %edi
499a3c:	5e                   	pop    %esi
499a3d:	5b                   	pop    %ebx
499a3e:	8b e5                	mov    %ebp,%esp
499a40:	5d                   	pop    %ebp
499a41:	c2 04 00             	ret    $0x4
499a44:	f6 c1 04             	test   $0x4,%cl
499a47:	74 07                	je     0x499a50
499a49:	be 34 c4 68 00       	mov    $0x68c434,%esi
499a4e:	eb 10                	jmp    0x499a60
499a50:	f6 c1 02             	test   $0x2,%cl
499a53:	be 4c c4 68 00       	mov    $0x68c44c,%esi
499a58:	b8 64 c4 68 00       	mov    $0x68c464,%eax
499a5d:	0f 44 f0             	cmove  %eax,%esi
499a60:	8d 45 dc             	lea    -0x24(%ebp),%eax
499a63:	6a 01                	push   $0x1
499a65:	50                   	push   %eax
499a66:	e8 65 05 fa ff       	call   0x439fd0
499a6b:	83 c4 08             	add    $0x8,%esp
499a6e:	8d 4d c8             	lea    -0x38(%ebp),%ecx
499a71:	50                   	push   %eax
499a72:	56                   	push   %esi
499a73:	e8 78 0a fa ff       	call   0x43a4f0
499a78:	68 0c 60 70 00       	push   $0x70600c
499a7d:	8d 45 c8             	lea    -0x38(%ebp),%eax
499a80:	50                   	push   %eax
499a81:	e8 ac 8f 14 00       	call   0x5e2a32
499a86:	f6 c1 04             	test   $0x4,%cl
499a89:	74 07                	je     0x499a92
499a8b:	be 34 c4 68 00       	mov    $0x68c434,%esi
499a90:	eb 10                	jmp    0x499aa2
499a92:	f6 c1 02             	test   $0x2,%cl
499a95:	be 4c c4 68 00       	mov    $0x68c44c,%esi
499a9a:	b8 64 c4 68 00       	mov    $0x68c464,%eax
499a9f:	0f 44 f0             	cmove  %eax,%esi
499aa2:	8d 45 e4             	lea    -0x1c(%ebp),%eax
499aa5:	6a 01                	push   $0x1
499aa7:	50                   	push   %eax
499aa8:	e8 23 05 fa ff       	call   0x439fd0
499aad:	83 c4 08             	add    $0x8,%esp
499ab0:	8d 4d b4             	lea    -0x4c(%ebp),%ecx
499ab3:	50                   	push   %eax
499ab4:	56                   	push   %esi
499ab5:	e8 36 0a fa ff       	call   0x43a4f0
499aba:	68 0c 60 70 00       	push   $0x70600c
499abf:	8d 45 b4             	lea    -0x4c(%ebp),%eax
499ac2:	50                   	push   %eax
499ac3:	e8 6a 8f 14 00       	call   0x5e2a32
499ac8:	cc                   	int3
499ac9:	cc                   	int3
499aca:	cc                   	int3
499acb:	cc                   	int3
499acc:	cc                   	int3
499acd:	cc                   	int3
499ace:	cc                   	int3
499acf:	cc                   	int3
499ad0:	56                   	push   %esi
499ad1:	8b f1                	mov    %ecx,%esi
499ad3:	f6 46 3c 01          	testb  $0x1,0x3c(%esi)
499ad7:	74 47                	je     0x499b20
499ad9:	8b 46 20             	mov    0x20(%esi),%eax
499adc:	8b 08                	mov    (%eax),%ecx
499ade:	85 c9                	test   %ecx,%ecx
499ae0:	74 09                	je     0x499aeb
499ae2:	8b 46 30             	mov    0x30(%esi),%eax
499ae5:	8b 10                	mov    (%eax),%edx
499ae7:	03 d1                	add    %ecx,%edx
499ae9:	eb 0a                	jmp    0x499af5
499aeb:	8b 46 2c             	mov    0x2c(%esi),%eax
499aee:	8b 4e 1c             	mov    0x1c(%esi),%ecx
499af1:	8b 10                	mov    (%eax),%edx
499af3:	03 11                	add    (%ecx),%edx
499af5:	8b 46 0c             	mov    0xc(%esi),%eax
499af8:	8b 00                	mov    (%eax),%eax
499afa:	2b d0                	sub    %eax,%edx
499afc:	81 fa 00 10 00 00    	cmp    $0x1000,%edx
499b02:	72 12                	jb     0x499b16
499b04:	8b 48 fc             	mov    -0x4(%eax),%ecx
499b07:	83 c2 23             	add    $0x23,%edx
499b0a:	2b c1                	sub    %ecx,%eax
499b0c:	83 c0 fc             	add    $0xfffffffc,%eax
499b0f:	83 f8 1f             	cmp    $0x1f,%eax
499b12:	77 4f                	ja     0x499b63
499b14:	8b c1                	mov    %ecx,%eax
499b16:	52                   	push   %edx
499b17:	50                   	push   %eax
499b18:	e8 55 75 14 00       	call   0x5e1072
499b1d:	83 c4 08             	add    $0x8,%esp
499b20:	8b 46 0c             	mov    0xc(%esi),%eax
499b23:	c7 00 00 00 00 00    	movl   $0x0,(%eax)
499b29:	8b 46 1c             	mov    0x1c(%esi),%eax
499b2c:	c7 00 00 00 00 00    	movl   $0x0,(%eax)
499b32:	8b 46 2c             	mov    0x2c(%esi),%eax
499b35:	c7 00 00 00 00 00    	movl   $0x0,(%eax)
499b3b:	8b 46 10             	mov    0x10(%esi),%eax
499b3e:	c7 00 00 00 00 00    	movl   $0x0,(%eax)
499b44:	8b 46 20             	mov    0x20(%esi),%eax
499b47:	c7 00 00 00 00 00    	movl   $0x0,(%eax)
499b4d:	8b 46 30             	mov    0x30(%esi),%eax
499b50:	c7 00 00 00 00 00    	movl   $0x0,(%eax)
499b56:	83 66 3c fe          	andl   $0xfffffffe,0x3c(%esi)
499b5a:	c7 46 38 00 00 00 00 	movl   $0x0,0x38(%esi)
499b61:	5e                   	pop    %esi
499b62:	c3                   	ret
499b63:	e8 c7 33 15 00       	call   0x5ecf2f
499b68:	cc                   	int3
499b69:	cc                   	int3
499b6a:	cc                   	int3
499b6b:	cc                   	int3
499b6c:	cc                   	int3
499b6d:	cc                   	int3
499b6e:	cc                   	int3
499b6f:	cc                   	int3
499b70:	55                   	push   %ebp
499b71:	8b ec                	mov    %esp,%ebp
499b73:	6a ff                	push   $0xffffffff
499b75:	68 c8 7f 65 00       	push   $0x657fc8
499b7a:	64 a1 00 00 00 00    	mov    %fs:0x0,%eax
499b80:	50                   	push   %eax
499b81:	83 ec 3c             	sub    $0x3c,%esp
499b84:	a1 d4 89 72 00       	mov    0x7289d4,%eax
499b89:	33 c5                	xor    %ebp,%eax
499b8b:	89 45 f0             	mov    %eax,-0x10(%ebp)
499b8e:	53                   	push   %ebx
499b8f:	56                   	push   %esi
499b90:	57                   	push   %edi
499b91:	50                   	push   %eax
499b92:	8d 45 f4             	lea    -0xc(%ebp),%eax
499b95:	64 a3 00 00 00 00    	mov    %eax,%fs:0x0
499b9b:	8b f9                	mov    %ecx,%edi
499b9d:	8b 45 08             	mov    0x8(%ebp),%eax
499ba0:	8b 75 1c             	mov    0x1c(%ebp),%esi
499ba3:	8b 5d 20             	mov    0x20(%ebp),%ebx
499ba6:	89 45 b8             	mov    %eax,-0x48(%ebp)
499ba9:	8b 45 24             	mov    0x24(%ebp),%eax
499bac:	89 45 c8             	mov    %eax,-0x38(%ebp)
499baf:	8b 46 30             	mov    0x30(%esi),%eax
499bb2:	8b 48 04             	mov    0x4(%eax),%ecx
499bb5:	89 4d c4             	mov    %ecx,-0x3c(%ebp)
499bb8:	8b 01                	mov    (%ecx),%eax
499bba:	ff 50 04             	call   *0x4(%eax)
499bbd:	8d 45 c0             	lea    -0x40(%ebp),%eax
499bc0:	c7 45 fc 00 00 00 00 	movl   $0x0,-0x4(%ebp)
499bc7:	50                   	push   %eax
499bc8:	ff 76 14             	push   0x14(%esi)
499bcb:	8d 45 14             	lea    0x14(%ebp),%eax
499bce:	50                   	push   %eax
499bcf:	8d 45 0c             	lea    0xc(%ebp),%eax
499bd2:	50                   	push   %eax
499bd3:	8d 45 d0             	lea    -0x30(%ebp),%eax
499bd6:	50                   	push   %eax
499bd7:	57                   	push   %edi
499bd8:	e8 b3 f2 ff ff       	call   0x498e90
499bdd:	8b 4d c4             	mov    -0x3c(%ebp),%ecx
499be0:	83 c4 18             	add    $0x18,%esp
499be3:	c7 45 fc ff ff ff ff 	movl   $0xffffffff,-0x4(%ebp)
499bea:	8b f8                	mov    %eax,%edi
499bec:	85 c9                	test   %ecx,%ecx
499bee:	74 11                	je     0x499c01
499bf0:	8b 01                	mov    (%ecx),%eax
499bf2:	ff 50 08             	call   *0x8(%eax)
499bf5:	8b c8                	mov    %eax,%ecx
499bf7:	85 c9                	test   %ecx,%ecx
499bf9:	74 06                	je     0x499c01
499bfb:	8b 01                	mov    (%ecx),%eax
499bfd:	6a 01                	push   $0x1
499bff:	ff 10                	call   *(%eax)
499c01:	8a 45 d0             	mov    -0x30(%ebp),%al
499c04:	84 c0                	test   %al,%al
499c06:	75 10                	jne    0x499c18
499c08:	8b 45 c8             	mov    -0x38(%ebp),%eax
499c0b:	33 c9                	xor    %ecx,%ecx
499c0d:	c7 03 02 00 00 00    	movl   $0x2,(%ebx)
499c13:	66 89 08             	mov    %cx,(%eax)
499c16:	eb 57                	jmp    0x499c6f
499c18:	3c 2d                	cmp    $0x2d,%al
499c1a:	8d 4d d0             	lea    -0x30(%ebp),%ecx
499c1d:	8d 45 c4             	lea    -0x3c(%ebp),%eax
499c20:	50                   	push   %eax
499c21:	57                   	push   %edi
499c22:	8d 45 bc             	lea    -0x44(%ebp),%eax
499c25:	0f 94 45 cf          	sete   -0x31(%ebp)
499c29:	8d 75 d1             	lea    -0x2f(%ebp),%esi
499c2c:	0f 45 f1             	cmovne %ecx,%esi
499c2f:	50                   	push   %eax
499c30:	56                   	push   %esi
499c31:	e8 53 55 13 00       	call   0x5cf189
499c36:	8b 4d c8             	mov    -0x38(%ebp),%ecx
499c39:	8b d0                	mov    %eax,%edx
499c3b:	83 c4 10             	add    $0x10,%esp
499c3e:	0f b7 c2             	movzwl %dx,%eax
499c41:	66 89 01             	mov    %ax,(%ecx)
499c44:	39 75 bc             	cmp    %esi,-0x44(%ebp)
499c47:	74 18                	je     0x499c61
499c49:	83 7d c4 00          	cmpl   $0x0,-0x3c(%ebp)
499c4d:	75 12                	jne    0x499c61
499c4f:	81 fa ff ff 00 00    	cmp    $0xffff,%edx
499c55:	77 0a                	ja     0x499c61
499c57:	80 7d cf 00          	cmpb   $0x0,-0x31(%ebp)
499c5b:	74 12                	je     0x499c6f
499c5d:	f7 d8                	neg    %eax
499c5f:	eb 0b                	jmp    0x499c6c
499c61:	c7 03 02 00 00 00    	movl   $0x2,(%ebx)
499c67:	b8 ff ff 00 00       	mov    $0xffff,%eax
499c6c:	66 89 01             	mov    %ax,(%ecx)
499c6f:	8d 45 14             	lea    0x14(%ebp),%eax
499c72:	50                   	push   %eax
499c73:	8d 45 0c             	lea    0xc(%ebp),%eax
499c76:	50                   	push   %eax
499c77:	e8 64 95 ff ff       	call   0x4931e0
499c7c:	83 c4 08             	add    $0x8,%esp
499c7f:	84 c0                	test   %al,%al
499c81:	74 03                	je     0x499c86
499c83:	83 0b 01             	orl    $0x1,(%ebx)
499c86:	8b 45 b8             	mov    -0x48(%ebp),%eax
499c89:	8b 4d 0c             	mov    0xc(%ebp),%ecx
499c8c:	89 08                	mov    %ecx,(%eax)
499c8e:	8b 4d 10             	mov    0x10(%ebp),%ecx
499c91:	89 48 04             	mov    %ecx,0x4(%eax)
499c94:	8b 4d f4             	mov    -0xc(%ebp),%ecx