5fab9b:	8b ec                	mov    %esp,%ebp
5fab9d:	5d                   	pop    %ebp
5fab9e:	e9 cf f8 ff ff       	jmp    0x5fa472
5faba3:	8b ff                	mov    %edi,%edi
5faba5:	55                   	push   %ebp
5faba6:	8b ec                	mov    %esp,%ebp
5faba8:	56                   	push   %esi
5faba9:	57                   	push   %edi
5fabaa:	8b 7d 0c             	mov    0xc(%ebp),%edi
5fabad:	33 f6                	xor    %esi,%esi
5fabaf:	56                   	push   %esi
5fabb0:	ff 77 08             	push   0x8(%edi)
5fabb3:	ff 77 0c             	push   0xc(%edi)
5fabb6:	ff 75 08             	push   0x8(%ebp)
5fabb9:	ff 15 98 23 68 00    	call   *0x682398
5fabbf:	85 c0                	test   %eax,%eax
5fabc1:	75 16                	jne    0x5fabd9
5fabc3:	ff 15 e0 21 68 00    	call   *0x6821e0
5fabc9:	50                   	push   %eax
5fabca:	e8 f4 23 ff ff       	call   0x5ecfc3
5fabcf:	59                   	pop    %ecx
5fabd0:	e8 24 24 ff ff       	call   0x5ecff9
5fabd5:	8b 30                	mov    (%eax),%esi
5fabd7:	eb 2d                	jmp    0x5fac06
5fabd9:	3b 47 0c             	cmp    0xc(%edi),%eax
5fabdc:	76 25                	jbe    0x5fac03
5fabde:	40                   	inc    %eax
5fabdf:	8b cf                	mov    %edi,%ecx
5fabe1:	50                   	push   %eax
5fabe2:	e8 d8 d8 ff ff       	call   0x5f84bf
5fabe7:	85 c0                	test   %eax,%eax
5fabe9:	74 04                	je     0x5fabef
5fabeb:	8b f0                	mov    %eax,%esi
5fabed:	eb 17                	jmp    0x5fac06
5fabef:	56                   	push   %esi
5fabf0:	ff 77 08             	push   0x8(%edi)
5fabf3:	ff 77 0c             	push   0xc(%edi)
5fabf6:	ff 75 08             	push   0x8(%ebp)
5fabf9:	ff 15 98 23 68 00    	call   *0x682398
5fabff:	85 c0                	test   %eax,%eax
5fac01:	74 c0                	je     0x5fabc3
5fac03:	89 47 10             	mov    %eax,0x10(%edi)
5fac06:	5f                   	pop    %edi
5fac07:	8b c6                	mov    %esi,%eax
5fac09:	5e                   	pop    %esi
5fac0a:	5d                   	pop    %ebp
5fac0b:	c3                   	ret
5fac0c:	8b ff                	mov    %edi,%edi
5fac0e:	55                   	push   %ebp
5fac0f:	8b ec                	mov    %esp,%ebp
5fac11:	56                   	push   %esi
5fac12:	57                   	push   %edi
5fac13:	8b 7d 0c             	mov    0xc(%ebp),%edi
5fac16:	33 f6                	xor    %esi,%esi
5fac18:	56                   	push   %esi
5fac19:	ff 77 08             	push   0x8(%edi)
5fac1c:	ff 77 0c             	push   0xc(%edi)
5fac1f:	ff 75 08             	push   0x8(%ebp)
5fac22:	ff 15 98 23 68 00    	call   *0x682398
5fac28:	85 c0                	test   %eax,%eax
5fac2a:	75 16                	jne    0x5fac42
5fac2c:	ff 15 e0 21 68 00    	call   *0x6821e0
5fac32:	50                   	push   %eax
5fac33:	e8 8b 23 ff ff       	call   0x5ecfc3
5fac38:	59                   	pop    %ecx
5fac39:	e8 bb 23 ff ff       	call   0x5ecff9
5fac3e:	8b 30                	mov    (%eax),%esi
5fac40:	eb 2d                	jmp    0x5fac6f
5fac42:	3b 47 0c             	cmp    0xc(%edi),%eax
5fac45:	76 25                	jbe    0x5fac6c
5fac47:	40                   	inc    %eax
5fac48:	8b cf                	mov    %edi,%ecx
5fac4a:	50                   	push   %eax
5fac4b:	e8 d7 00 00 00       	call   0x5fad27
5fac50:	85 c0                	test   %eax,%eax
5fac52:	74 04                	je     0x5fac58
5fac54:	8b f0                	mov    %eax,%esi
5fac56:	eb 17                	jmp    0x5fac6f
5fac58:	56                   	push   %esi
5fac59:	ff 77 08             	push   0x8(%edi)
5fac5c:	ff 77 0c             	push   0xc(%edi)
5fac5f:	ff 75 08             	push   0x8(%ebp)
5fac62:	ff 15 98 23 68 00    	call   *0x682398
5fac68:	85 c0                	test   %eax,%eax
5fac6a:	74 c0                	je     0x5fac2c
5fac6c:	89 47 10             	mov    %eax,0x10(%edi)
5fac6f:	5f                   	pop    %edi
5fac70:	8b c6                	mov    %esi,%eax
5fac72:	5e                   	pop    %esi
5fac73:	5d                   	pop    %ebp
5fac74:	c3                   	ret
5fac75:	8b ff                	mov    %edi,%edi
5fac77:	55                   	push   %ebp
5fac78:	8b ec                	mov    %esp,%ebp
5fac7a:	8b 4d 0c             	mov    0xc(%ebp),%ecx
5fac7d:	83 ec 18             	sub    $0x18,%esp
5fac80:	56                   	push   %esi
5fac81:	85 c9                	test   %ecx,%ecx
5fac83:	74 6c                	je     0x5facf1
5fac85:	33 d2                	xor    %edx,%edx
5fac87:	66 39 11             	cmp    %dx,(%ecx)
5fac8a:	74 65                	je     0x5facf1
5fac8c:	8b 75 08             	mov    0x8(%ebp),%esi
5fac8f:	89 55 f8             	mov    %edx,-0x8(%ebp)
5fac92:	88 55 fc             	mov    %dl,-0x4(%ebp)
5fac95:	85 f6                	test   %esi,%esi
5fac97:	74 23                	je     0x5facbc
5fac99:	8b 45 10             	mov    0x10(%ebp),%eax
5fac9c:	89 45 ec             	mov    %eax,-0x14(%ebp)
5fac9f:	89 45 f4             	mov    %eax,-0xc(%ebp)
5faca2:	8d 45 e8             	lea    -0x18(%ebp),%eax
5faca5:	50                   	push   %eax
5faca6:	51                   	push   %ecx
5faca7:	89 75 e8             	mov    %esi,-0x18(%ebp)
5facaa:	89 75 f0             	mov    %esi,-0x10(%ebp)
5facad:	e8 f1 fe ff ff       	call   0x5faba3
5facb2:	f7 d8                	neg    %eax
5facb4:	1b c0                	sbb    %eax,%eax
5facb6:	f7 d0                	not    %eax
5facb8:	23 c6                	and    %esi,%eax
5facba:	eb 4c                	jmp    0x5fad08
5facbc:	8d 45 e8             	lea    -0x18(%ebp),%eax
5facbf:	89 55 e8             	mov    %edx,-0x18(%ebp)
5facc2:	50                   	push   %eax
5facc3:	51                   	push   %ecx
5facc4:	89 55 ec             	mov    %edx,-0x14(%ebp)
5facc7:	89 55 f0             	mov    %edx,-0x10(%ebp)
5facca:	89 55 f4             	mov    %edx,-0xc(%ebp)
5faccd:	e8 3a ff ff ff       	call   0x5fac0c
5facd2:	59                   	pop    %ecx
5facd3:	59                   	pop    %ecx
5facd4:	8d 4d e8             	lea    -0x18(%ebp),%ecx
5facd7:	e8 a9 00 00 00       	call   0x5fad85
5facdc:	80 7d fc 00          	cmpb   $0x0,-0x4(%ebp)
5face0:	8b f0                	mov    %eax,%esi
5face2:	74 09                	je     0x5faced
5face4:	ff 75 f0             	push   -0x10(%ebp)
5face7:	e8 84 39 ff ff       	call   0x5ee670
5facec:	59                   	pop    %ecx
5faced:	8b c6                	mov    %esi,%eax
5facef:	eb 19                	jmp    0x5fad0a
5facf1:	8b 45 10             	mov    0x10(%ebp),%eax
5facf4:	b9 ff ff ff 7f       	mov    $0x7fffffff,%ecx
5facf9:	3b c1                	cmp    %ecx,%eax
5facfb:	72 02                	jb     0x5facff
5facfd:	8b c1                	mov    %ecx,%eax
5facff:	50                   	push   %eax
5fad00:	ff 75 08             	push   0x8(%ebp)
5fad03:	e8 ca ec 00 00       	call   0x6099d2
5fad08:	59                   	pop    %ecx
5fad09:	59                   	pop    %ecx
5fad0a:	5e                   	pop    %esi
5fad0b:	c9                   	leave
5fad0c:	c3                   	ret
5fad0d:	8b ff                	mov    %edi,%edi
5fad0f:	56                   	push   %esi
5fad10:	8b f1                	mov    %ecx,%esi
5fad12:	80 7e 14 00          	cmpb   $0x0,0x14(%esi)
5fad16:	74 0d                	je     0x5fad25
5fad18:	ff 76 08             	push   0x8(%esi)
5fad1b:	e8 50 39 ff ff       	call   0x5ee670
5fad20:	59                   	pop    %ecx
5fad21:	c6 46 14 00          	movb   $0x0,0x14(%esi)
5fad25:	5e                   	pop    %esi
5fad26:	c3                   	ret
5fad27:	8b ff                	mov    %edi,%edi
5fad29:	55                   	push   %ebp
5fad2a:	8b ec                	mov    %esp,%ebp
5fad2c:	56                   	push   %esi
5fad2d:	57                   	push   %edi
5fad2e:	8b f1                	mov    %ecx,%esi
5fad30:	e8 d8 ff ff ff       	call   0x5fad0d
5fad35:	8b 7d 08             	mov    0x8(%ebp),%edi
5fad38:	56                   	push   %esi
5fad39:	8d 04 3f             	lea    (%edi,%edi,1),%eax
5fad3c:	50                   	push   %eax
5fad3d:	8d 46 08             	lea    0x8(%esi),%eax
5fad40:	50                   	push   %eax
5fad41:	e8 20 00 00 00       	call   0x5fad66
5fad46:	83 c4 0c             	add    $0xc,%esp
5fad49:	85 c0                	test   %eax,%eax
5fad4b:	74 0a                	je     0x5fad57
5fad4d:	83 66 0c 00          	andl   $0x0,0xc(%esi)
5fad51:	c6 46 14 00          	movb   $0x0,0x14(%esi)
5fad55:	eb 09                	jmp    0x5fad60
5fad57:	c6 46 14 01          	movb   $0x1,0x14(%esi)
5fad5b:	33 c0                	xor    %eax,%eax
5fad5d:	89 7e 0c             	mov    %edi,0xc(%esi)
5fad60:	5f                   	pop    %edi
5fad61:	5e                   	pop    %esi
5fad62:	5d                   	pop    %ebp
5fad63:	c2 04 00             	ret    $0x4
5fad66:	8b ff                	mov    %edi,%edi
5fad68:	55                   	push   %ebp
5fad69:	8b ec                	mov    %esp,%ebp
5fad6b:	ff 75 0c             	push   0xc(%ebp)
5fad6e:	e8 3d 3a ff ff       	call   0x5ee7b0
5fad73:	59                   	pop    %ecx
5fad74:	8b 4d 08             	mov    0x8(%ebp),%ecx
5fad77:	89 01                	mov    %eax,(%ecx)
5fad79:	f7 d8                	neg    %eax
5fad7b:	1b c0                	sbb    %eax,%eax
5fad7d:	83 e0 f4             	and    $0xfffffff4,%eax
5fad80:	83 c0 0c             	add    $0xc,%eax
5fad83:	5d                   	pop    %ebp
5fad84:	c3                   	ret
5fad85:	8b ff                	mov    %edi,%edi
5fad87:	56                   	push   %esi
5fad88:	8b f1                	mov    %ecx,%esi
5fad8a:	57                   	push   %edi
5fad8b:	8b 7e 08             	mov    0x8(%esi),%edi
5fad8e:	85 ff                	test   %edi,%edi
5fad90:	74 40                	je     0x5fadd2
5fad92:	8b 46 10             	mov    0x10(%esi),%eax
5fad95:	85 c0                	test   %eax,%eax
5fad97:	74 39                	je     0x5fadd2
5fad99:	80 7e 14 00          	cmpb   $0x0,0x14(%esi)
5fad9d:	75 20                	jne    0x5fadbf
5fad9f:	85 c0                	test   %eax,%eax
5fada1:	74 1c                	je     0x5fadbf
5fada3:	03 c0                	add    %eax,%eax
5fada5:	50                   	push   %eax
5fada6:	e8 05 3a ff ff       	call   0x5ee7b0
5fadab:	ff 76 0c             	push   0xc(%esi)
5fadae:	8b f8                	mov    %eax,%edi
5fadb0:	ff 76 08             	push   0x8(%esi)
5fadb3:	ff 76 10             	push   0x10(%esi)
5fadb6:	57                   	push   %edi
5fadb7:	e8 d5 33 ff ff       	call   0x5ee191
5fadbc:	83 c4 14             	add    $0x14,%esp
5fadbf:	8b 06                	mov    (%esi),%eax
5fadc1:	83 66 10 00          	andl   $0x0,0x10(%esi)
5fadc5:	89 46 08             	mov    %eax,0x8(%esi)
5fadc8:	8b 46 04             	mov    0x4(%esi),%eax
5fadcb:	89 46 0c             	mov    %eax,0xc(%esi)
5fadce:	8b c7                	mov    %edi,%eax
5fadd0:	eb 02                	jmp    0x5fadd4
5fadd2:	33 c0                	xor    %eax,%eax
5fadd4:	5f                   	pop    %edi
5fadd5:	5e                   	pop    %esi
5fadd6:	c3                   	ret
5fadd7:	8b ff                	mov    %edi,%edi
5fadd9:	55                   	push   %ebp
5fadda:	8b ec                	mov    %esp,%ebp
5faddc:	6a 00                	push   $0x0
5fadde:	6a 00                	push   $0x0
5fade0:	6a 01                	push   $0x1
5fade2:	ff 75 10             	push   0x10(%ebp)
5fade5:	ff 75 0c             	push   0xc(%ebp)
5fade8:	ff 75 08             	push   0x8(%ebp)
5fadeb:	e8 85 fe ff ff       	call   0x5fac75
5fadf0:	83 c4 18             	add    $0x18,%esp
5fadf3:	5d                   	pop    %ebp
5fadf4:	c3                   	ret
5fadf5:	8b ff                	mov    %edi,%edi
5fadf7:	55                   	push   %ebp
5fadf8:	8b ec                	mov    %esp,%ebp
5fadfa:	6a 00                	push   $0x0
5fadfc:	ff 75 08             	push   0x8(%ebp)
5fadff:	ff 15 a8 21 68 00    	call   *0x6821a8
5fae05:	85 c0                	test   %eax,%eax
5fae07:	75 12                	jne    0x5fae1b
5fae09:	ff 15 e0 21 68 00    	call   *0x6821e0
5fae0f:	50                   	push   %eax
5fae10:	e8 ae 21 ff ff       	call   0x5ecfc3
5fae15:	59                   	pop    %ecx
5fae16:	83 c8 ff             	or     $0xffffffff,%eax
5fae19:	5d                   	pop    %ebp
5fae1a:	c3                   	ret
5fae1b:	33 c0                	xor    %eax,%eax
5fae1d:	5d                   	pop    %ebp
5fae1e:	c3                   	ret
5fae1f:	6a 08                	push   $0x8
5fae21:	68 d0 1b 70 00       	push   $0x701bd0
5fae26:	e8 e5 76 fe ff       	call   0x5e2510
5fae2b:	8b 45 08             	mov    0x8(%ebp),%eax
5fae2e:	ff 30                	push   (%eax)
5fae30:	e8 6d 13 00 00       	call   0x5fc1a2
5fae35:	59                   	pop    %ecx
5fae36:	83 65 fc 00          	andl   $0x0,-0x4(%ebp)
5fae3a:	8b 75 0c             	mov    0xc(%ebp),%esi
5fae3d:	ff 76 04             	push   0x4(%esi)
5fae40:	8b 06                	mov    (%esi),%eax
5fae42:	ff 30                	push   (%eax)
5fae44:	e8 bb 01 00 00       	call   0x5fb004
5fae49:	59                   	pop    %ecx
5fae4a:	59                   	pop    %ecx
5fae4b:	84 c0                	test   %al,%al
5fae4d:	74 32                	je     0x5fae81
5fae4f:	8b 46 08             	mov    0x8(%esi),%eax
5fae52:	80 38 00             	cmpb   $0x0,(%eax)
5fae55:	75 0e                	jne    0x5fae65
5fae57:	8b 06                	mov    (%esi),%eax
5fae59:	8b 00                	mov    (%eax),%eax
5fae5b:	8b 40 0c             	mov    0xc(%eax),%eax
5fae5e:	90                   	nop
5fae5f:	d1 e8                	shr    $1,%eax
5fae61:	a8 01                	test   $0x1,%al
5fae63:	74 1c                	je     0x5fae81
5fae65:	8b 06                	mov    (%esi),%eax
5fae67:	ff 30                	push   (%eax)
5fae69:	e8 53 02 00 00       	call   0x5fb0c1
5fae6e:	59                   	pop    %ecx
5fae6f:	83 f8 ff             	cmp    $0xffffffff,%eax
5fae72:	74 07                	je     0x5fae7b
5fae74:	8b 46 04             	mov    0x4(%esi),%eax
5fae77:	ff 00                	incl   (%eax)
5fae79:	eb 06                	jmp    0x5fae81
5fae7b:	8b 46 0c             	mov    0xc(%esi),%eax
5fae7e:	83 08 ff             	orl    $0xffffffff,(%eax)
5fae81:	c7 45 fc fe ff ff ff 	movl   $0xfffffffe,-0x4(%ebp)
5fae88:	e8 12 00 00 00       	call   0x5fae9f
5fae8d:	8b 4d f0             	mov    -0x10(%ebp),%ecx
5fae90:	64 89 0d 00 00 00 00 	mov    %ecx,%fs:0x0
5fae97:	59                   	pop    %ecx
5fae98:	5f                   	pop    %edi
5fae99:	5e                   	pop    %esi
5fae9a:	5b                   	pop    %ebx
5fae9b:	c9                   	leave
5fae9c:	c2 0c 00             	ret    $0xc
5fae9f:	8b 45 10             	mov    0x10(%ebp),%eax
5faea2:	ff 30                	push   (%eax)
5faea4:	e8 0d 13 00 00       	call   0x5fc1b6
5faea9:	59                   	pop    %ecx
5faeaa:	c3                   	ret
5faeab:	6a 2c                	push   $0x2c
5faead:	68 f0 1b 70 00       	push   $0x701bf0
5faeb2:	e8 59 76 fe ff       	call   0x5e2510
5faeb7:	8b 45 08             	mov    0x8(%ebp),%eax
5faeba:	ff 30                	push   (%eax)
5faebc:	e8 c0 57 00 00       	call   0x600681
5faec1:	59                   	pop    %ecx
5faec2:	83 65 fc 00          	andl   $0x0,-0x4(%ebp)
5faec6:	8b 35 cc 0c 73 00    	mov    0x730ccc,%esi
5faecc:	a1 c8 0c 73 00       	mov    0x730cc8,%eax
5faed1:	8d 1c 86             	lea    (%esi,%eax,4),%ebx
5faed4:	8b 7d 0c             	mov    0xc(%ebp),%edi
5faed7:	89 75 d4             	mov    %esi,-0x2c(%ebp)
5faeda:	3b f3                	cmp    %ebx,%esi
5faedc:	74 4f                	je     0x5faf2d
5faede:	8b 06                	mov    (%esi),%eax
5faee0:	89 45 e0             	mov    %eax,-0x20(%ebp)
5faee3:	ff 37                	push   (%edi)
5faee5:	50                   	push   %eax
5faee6:	e8 19 01 00 00       	call   0x5fb004
5faeeb:	59                   	pop    %ecx
5faeec:	59                   	pop    %ecx
5faeed:	84 c0                	test   %al,%al
5faeef:	74 37                	je     0x5faf28
5faef1:	8b 57 08             	mov    0x8(%edi),%edx