5fa9f4:	89 47 30             	mov    %eax,0x30(%edi)
5fa9f7:	8b 46 34             	mov    0x34(%esi),%eax
5fa9fa:	89 47 34             	mov    %eax,0x34(%edi)
5fa9fd:	88 5f 40             	mov    %bl,0x40(%edi)
5faa00:	8b c7                	mov    %edi,%eax
5faa02:	e8 cd d8 ff ff       	call   0x5f82d4
5faa07:	80 7e 40 00          	cmpb   $0x0,0x40(%esi)
5faa0b:	74 09                	je     0x5faa16
5faa0d:	8b d6                	mov    %esi,%edx
5faa0f:	8b c7                	mov    %edi,%eax
5faa11:	e8 9a e2 ff ff       	call   0x5f8cb0
5faa16:	8b c6                	mov    %esi,%eax
5faa18:	e8 5b 90 e0 ff       	call   0x403a78
5faa1d:	e9 fd 00 00 00       	jmp    0x5fab1f
5faa22:	8b 47 24             	mov    0x24(%edi),%eax
5faa25:	8b 10                	mov    (%eax),%edx
5faa27:	ff 52 2c             	call   *0x2c(%edx)
5faa2a:	85 c0                	test   %eax,%eax
5faa2c:	0f 84 9f 00 00 00    	je     0x5faad1
5faa32:	8b 47 24             	mov    0x24(%edi),%eax
5faa35:	8b 10                	mov    (%eax),%edx
5faa37:	ff 52 20             	call   *0x20(%edx)
5faa3a:	85 c0                	test   %eax,%eax
5faa3c:	0f 84 8f 00 00 00    	je     0x5faad1
5faa42:	8b 47 24             	mov    0x24(%edi),%eax
5faa45:	e8 3a 2e e3 ff       	call   0x42d884
5faa4a:	fe c8                	dec    %al
5faa4c:	74 09                	je     0x5faa57
5faa4e:	2c 05                	sub    $0x5,%al
5faa50:	74 31                	je     0x5faa83
5faa52:	e9 9c 00 00 00       	jmp    0x5faaf3
5faa57:	80 fb 05             	cmp    $0x5,%bl
5faa5a:	0f 85 93 00 00 00    	jne    0x5faaf3
5faa60:	8b 47 24             	mov    0x24(%edi),%eax
5faa63:	e8 18 14 fb ff       	call   0x5abe80
5faa68:	89 04 24             	mov    %eax,(%esp)
5faa6b:	8d 4c 24 08          	lea    0x8(%esp),%ecx
5faa6f:	8d 57 24             	lea    0x24(%edi),%edx
5faa72:	8b c4                	mov    %esp,%eax
5faa74:	e8 c7 34 fb ff       	call   0x5adf40
5faa79:	8b 04 24             	mov    (%esp),%eax
5faa7c:	e8 f7 8f e0 ff       	call   0x403a78
5faa81:	eb 70                	jmp    0x5faaf3
5faa83:	80 fb 01             	cmp    $0x1,%bl
5faa86:	75 6b                	jne    0x5faaf3
5faa88:	b2 01                	mov    $0x1,%dl
5faa8a:	a1 18 ff 5e 00       	mov    0x5eff18,%eax
5faa8f:	e8 10 cb ff ff       	call   0x5f75a4
5faa94:	8b f0                	mov    %eax,%esi
5faa96:	b1 01                	mov    $0x1,%cl
5faa98:	8b 57 24             	mov    0x24(%edi),%edx
5faa9b:	8b c6                	mov    %esi,%eax
5faa9d:	e8 9e db ff ff       	call   0x5f8640
5faaa2:	8a 47 4c             	mov    0x4c(%edi),%al
5faaa5:	2c 01                	sub    $0x1,%al
5faaa7:	72 04                	jb     0x5faaad
5faaa9:	74 0f                	je     0x5faaba
5faaab:	eb 1b                	jmp    0x5faac8
5faaad:	8d 54 24 08          	lea    0x8(%esp),%edx
5faab1:	8b c6                	mov    %esi,%eax
5faab3:	e8 30 2d fb ff       	call   0x5ad7e8
5faab8:	eb 0e                	jmp    0x5faac8
5faaba:	8d 4c 24 08          	lea    0x8(%esp),%ecx
5faabe:	83 ca ff             	or     $0xffffffff,%edx
5faac1:	8b c6                	mov    %esi,%eax
5faac3:	e8 04 2f fb ff       	call   0x5ad9cc
5faac8:	8b c6                	mov    %esi,%eax
5faaca:	e8 a9 8f e0 ff       	call   0x403a78
5faacf:	eb 22                	jmp    0x5faaf3
5faad1:	8b c3                	mov    %ebx,%eax
5faad3:	fe c8                	dec    %al
5faad5:	74 06                	je     0x5faadd
5faad7:	2c 04                	sub    $0x4,%al
5faad9:	74 0e                	je     0x5faae9
5faadb:	eb 16                	jmp    0x5faaf3
5faadd:	b2 01                	mov    $0x1,%dl
5faadf:	8b 47 24             	mov    0x24(%edi),%eax
5faae2:	e8 c1 3c e3 ff       	call   0x42e7a8
5faae7:	eb 0a                	jmp    0x5faaf3
5faae9:	b2 06                	mov    $0x6,%dl
5faaeb:	8b 47 24             	mov    0x24(%edi),%eax
5faaee:	e8 b5 3c e3 ff       	call   0x42e7a8
5faaf3:	8b c3                	mov    %ebx,%eax
5faaf5:	88 47 40             	mov    %al,0x40(%edi)
5faaf8:	83 e0 7f             	and    $0x7f,%eax
5faafb:	8b 1c 85 fc 55 6a 00 	mov    0x6a55fc(,%eax,4),%ebx
5fab02:	89 5f 38             	mov    %ebx,0x38(%edi)
5fab05:	8b 8f 80 00 00 00    	mov    0x80(%edi),%ecx
5fab0b:	8b d3                	mov    %ebx,%edx
5fab0d:	8b 47 30             	mov    0x30(%edi),%eax
5fab10:	e8 cb 5f ff ff       	call   0x5f0ae0
5fab15:	89 47 3c             	mov    %eax,0x3c(%edi)
5fab18:	8b c7                	mov    %edi,%eax
5fab1a:	e8 61 cf ff ff       	call   0x5f7a80
5fab1f:	83 c4 38             	add    $0x38,%esp
5fab22:	5f                   	pop    %edi
5fab23:	5e                   	pop    %esi
5fab24:	5b                   	pop    %ebx
5fab25:	c3                   	ret
5fab26:	8b c0                	mov    %eax,%eax
5fab28:	55                   	push   %ebp
5fab29:	8b ec                	mov    %esp,%ebp
5fab2b:	83 c4 e8             	add    $0xffffffe8,%esp
5fab2e:	53                   	push   %ebx
5fab2f:	56                   	push   %esi
5fab30:	57                   	push   %edi
5fab31:	89 4d f8             	mov    %ecx,-0x8(%ebp)
5fab34:	89 55 fc             	mov    %edx,-0x4(%ebp)
5fab37:	8b f0                	mov    %eax,%esi
5fab39:	8b 5d 08             	mov    0x8(%ebp),%ebx
5fab3c:	83 7d 14 00          	cmpl   $0x0,0x14(%ebp)
5fab40:	7d 15                	jge    0x5fab57
5fab42:	8b 45 14             	mov    0x14(%ebp),%eax
5fab45:	f7 d8                	neg    %eax
5fab47:	01 45 f8             	add    %eax,-0x8(%ebp)
5fab4a:	8b 55 14             	mov    0x14(%ebp),%edx
5fab4d:	f7 da                	neg    %edx
5fab4f:	29 45 0c             	sub    %eax,0xc(%ebp)
5fab52:	33 c0                	xor    %eax,%eax
5fab54:	89 45 14             	mov    %eax,0x14(%ebp)
5fab57:	83 7d 10 00          	cmpl   $0x0,0x10(%ebp)
5fab5b:	7d 14                	jge    0x5fab71
5fab5d:	8b 45 10             	mov    0x10(%ebp),%eax
5fab60:	f7 d8                	neg    %eax
5fab62:	01 45 18             	add    %eax,0x18(%ebp)
5fab65:	8b 55 10             	mov    0x10(%ebp),%edx
5fab68:	f7 da                	neg    %edx
5fab6a:	2b d8                	sub    %eax,%ebx
5fab6c:	33 c0                	xor    %eax,%eax
5fab6e:	89 45 10             	mov    %eax,0x10(%ebp)
5fab71:	8b 45 fc             	mov    -0x4(%ebp),%eax
5fab74:	8b 10                	mov    (%eax),%edx
5fab76:	ff 52 0c             	call   *0xc(%edx)
5fab79:	8b d0                	mov    %eax,%edx
5fab7b:	4a                   	dec    %edx
5fab7c:	8b 45 14             	mov    0x14(%ebp),%eax
5fab7f:	e8 98 e8 fa ff       	call   0x5a941c
5fab84:	89 45 14             	mov    %eax,0x14(%ebp)
5fab87:	8b 45 fc             	mov    -0x4(%ebp),%eax
5fab8a:	8b 10                	mov    (%eax),%edx
5fab8c:	ff 52 08             	call   *0x8(%edx)
5fab8f:	8b d0                	mov    %eax,%edx
5fab91:	4a                   	dec    %edx
5fab92:	8b 45 10             	mov    0x10(%ebp),%eax
5fab95:	e8 82 e8 fa ff       	call   0x5a941c
5fab9a:	89 45 10             	mov    %eax,0x10(%ebp)
5fab9d:	8b c6                	mov    %esi,%eax
5fab9f:	8b 10                	mov    (%eax),%edx
5faba1:	ff 52 0c             	call   *0xc(%edx)
5faba4:	48                   	dec    %eax
5faba5:	50                   	push   %eax
5faba6:	33 d2                	xor    %edx,%edx
5faba8:	8b 45 f8             	mov    -0x8(%ebp),%eax
5fabab:	e8 64 e8 fa ff       	call   0x5a9414
5fabb0:	5a                   	pop    %edx
5fabb1:	e8 66 e8 fa ff       	call   0x5a941c
5fabb6:	89 45 f8             	mov    %eax,-0x8(%ebp)
5fabb9:	8b c6                	mov    %esi,%eax
5fabbb:	8b 10                	mov    (%eax),%edx
5fabbd:	ff 52 08             	call   *0x8(%edx)
5fabc0:	48                   	dec    %eax
5fabc1:	50                   	push   %eax
5fabc2:	33 d2                	xor    %edx,%edx
5fabc4:	8b 45 18             	mov    0x18(%ebp),%eax
5fabc7:	e8 48 e8 fa ff       	call   0x5a9414
5fabcc:	5a                   	pop    %edx
5fabcd:	e8 4a e8 fa ff       	call   0x5a941c
5fabd2:	89 45 18             	mov    %eax,0x18(%ebp)
5fabd5:	8b c6                	mov    %esi,%eax
5fabd7:	8b 10                	mov    (%eax),%edx
5fabd9:	ff 52 0c             	call   *0xc(%edx)
5fabdc:	8b 55 f8             	mov    -0x8(%ebp),%edx
5fabdf:	03 55 0c             	add    0xc(%ebp),%edx
5fabe2:	3b c2                	cmp    %edx,%eax
5fabe4:	7d 0d                	jge    0x5fabf3
5fabe6:	8b c6                	mov    %esi,%eax
5fabe8:	8b 10                	mov    (%eax),%edx
5fabea:	ff 52 0c             	call   *0xc(%edx)
5fabed:	2b 45 f8             	sub    -0x8(%ebp),%eax
5fabf0:	89 45 0c             	mov    %eax,0xc(%ebp)
5fabf3:	8b c6                	mov    %esi,%eax
5fabf5:	8b 10                	mov    (%eax),%edx
5fabf7:	ff 52 08             	call   *0x8(%edx)
5fabfa:	8b 55 18             	mov    0x18(%ebp),%edx
5fabfd:	03 d3                	add    %ebx,%edx
5fabff:	3b c2                	cmp    %edx,%eax
5fac01:	7d 0c                	jge    0x5fac0f
5fac03:	8b c6                	mov    %esi,%eax
5fac05:	8b 10                	mov    (%eax),%edx
5fac07:	ff 52 08             	call   *0x8(%edx)
5fac0a:	8b d8                	mov    %eax,%ebx
5fac0c:	2b 5d 18             	sub    0x18(%ebp),%ebx
5fac0f:	8b 45 fc             	mov    -0x4(%ebp),%eax
5fac12:	8b 10                	mov    (%eax),%edx
5fac14:	ff 52 0c             	call   *0xc(%edx)
5fac17:	8b 55 14             	mov    0x14(%ebp),%edx
5fac1a:	03 55 0c             	add    0xc(%ebp),%edx
5fac1d:	3b c2                	cmp    %edx,%eax
5fac1f:	7d 0e                	jge    0x5fac2f
5fac21:	8b 45 fc             	mov    -0x4(%ebp),%eax
5fac24:	8b 10                	mov    (%eax),%edx
5fac26:	ff 52 0c             	call   *0xc(%edx)
5fac29:	2b 45 14             	sub    0x14(%ebp),%eax
5fac2c:	89 45 0c             	mov    %eax,0xc(%ebp)
5fac2f:	8b 45 fc             	mov    -0x4(%ebp),%eax
5fac32:	8b 10                	mov    (%eax),%edx
5fac34:	ff 52 08             	call   *0x8(%edx)
5fac37:	8b 55 10             	mov    0x10(%ebp),%edx
5fac3a:	03 d3                	add    %ebx,%edx
5fac3c:	3b c2                	cmp    %edx,%eax
5fac3e:	7d 0d                	jge    0x5fac4d
5fac40:	8b 45 fc             	mov    -0x4(%ebp),%eax
5fac43:	8b 10                	mov    (%eax),%edx
5fac45:	ff 52 08             	call   *0x8(%edx)
5fac48:	8b d8                	mov    %eax,%ebx
5fac4a:	2b 5d 10             	sub    0x10(%ebp),%ebx
5fac4d:	8b c6                	mov    %esi,%eax
5fac4f:	8b 10                	mov    (%eax),%edx
5fac51:	ff 52 10             	call   *0x10(%edx)
5fac54:	3c 01                	cmp    $0x1,%al
5fac56:	75 68                	jne    0x5facc0
5fac58:	8b 45 fc             	mov    -0x4(%ebp),%eax
5fac5b:	8b 10                	mov    (%eax),%edx
5fac5d:	ff 52 10             	call   *0x10(%edx)
5fac60:	3c 01                	cmp    $0x1,%al
5fac62:	75 5c                	jne    0x5facc0
5fac64:	4b                   	dec    %ebx
5fac65:	85 db                	test   %ebx,%ebx
5fac67:	0f 8c ca 01 00 00    	jl     0x5fae37
5fac6d:	43                   	inc    %ebx
5fac6e:	89 5d e8             	mov    %ebx,-0x18(%ebp)
5fac71:	c7 45 f4 00 00 00 00 	movl   $0x0,-0xc(%ebp)
5fac78:	8b 55 18             	mov    0x18(%ebp),%edx
5fac7b:	03 55 f4             	add    -0xc(%ebp),%edx
5fac7e:	8b c6                	mov    %esi,%eax
5fac80:	8b 08                	mov    (%eax),%ecx
5fac82:	ff 11                	call   *(%ecx)
5fac84:	89 45 ec             	mov    %eax,-0x14(%ebp)
5fac87:	8b 55 10             	mov    0x10(%ebp),%edx
5fac8a:	03 55 f4             	add    -0xc(%ebp),%edx
5fac8d:	8b 45 fc             	mov    -0x4(%ebp),%eax
5fac90:	8b 08                	mov    (%eax),%ecx
5fac92:	ff 11                	call   *(%ecx)
5fac94:	8b d8                	mov    %eax,%ebx
5fac96:	8b 45 f8             	mov    -0x8(%ebp),%eax
5fac99:	50                   	push   %eax
5fac9a:	8b 45 0c             	mov    0xc(%ebp),%eax
5fac9d:	50                   	push   %eax
5fac9e:	8b c6                	mov    %esi,%eax
5faca0:	8b 10                	mov    (%eax),%edx
5faca2:	ff 52 14             	call   *0x14(%edx)
5faca5:	50                   	push   %eax
5faca6:	8b 4d 14             	mov    0x14(%ebp),%ecx
5faca9:	8b 55 ec             	mov    -0x14(%ebp),%edx
5facac:	8b c3                	mov    %ebx,%eax
5facae:	e8 31 16 fb ff       	call   0x5ac2e4
5facb3:	ff 45 f4             	incl   -0xc(%ebp)
5facb6:	ff 4d e8             	decl   -0x18(%ebp)
5facb9:	75 bd                	jne    0x5fac78
5facbb:	e9 77 01 00 00       	jmp    0x5fae37
5facc0:	8b c6                	mov    %esi,%eax
5facc2:	8b 10                	mov    (%eax),%edx
5facc4:	ff 52 10             	call   *0x10(%edx)
5facc7:	3c 01                	cmp    $0x1,%al
5facc9:	0f 85 94 00 00 00    	jne    0x5fad63
5faccf:	8b 45 fc             	mov    -0x4(%ebp),%eax
5facd2:	8b 10                	mov    (%eax),%edx
5facd4:	ff 52 10             	call   *0x10(%edx)
5facd7:	3c 05                	cmp    $0x5,%al
5facd9:	0f 85 84 00 00 00    	jne    0x5fad63
5facdf:	4b                   	dec    %ebx
5face0:	85 db                	test   %ebx,%ebx
5face2:	0f 8c 4f 01 00 00    	jl     0x5fae37
5face8:	43                   	inc    %ebx
5face9:	89 5d e8             	mov    %ebx,-0x18(%ebp)
5facec:	c7 45 f4 00 00 00 00 	movl   $0x0,-0xc(%ebp)
5facf3:	8b 55 18             	mov    0x18(%ebp),%edx
5facf6:	03 55 f4             	add    -0xc(%ebp),%edx
5facf9:	8b c6                	mov    %esi,%eax
5facfb:	8b 08                	mov    (%eax),%ecx
5facfd:	ff 11                	call   *(%ecx)
5facff:	89 45 ec             	mov    %eax,-0x14(%ebp)
5fad02:	8b 55 10             	mov    0x10(%ebp),%edx
5fad05:	03 55 f4             	add    -0xc(%ebp),%edx
5fad08:	8b 45 fc             	mov    -0x4(%ebp),%eax
5fad0b:	8b 08                	mov    (%eax),%ecx
5fad0d:	ff 11                	call   *(%ecx)
5fad0f:	8b d8                	mov    %eax,%ebx
5fad11:	8b 45 14             	mov    0x14(%ebp),%eax
5fad14:	8d 04 40             	lea    (%eax,%eax,2),%eax
5fad17:	03 d8                	add    %eax,%ebx
5fad19:	8b 45 f8             	mov    -0x8(%ebp),%eax
5fad1c:	8b 7d f8             	mov    -0x8(%ebp),%edi
5fad1f:	03 7d 0c             	add    0xc(%ebp),%edi
5fad22:	4f                   	dec    %edi
5fad23:	2b f8                	sub    %eax,%edi
5fad25:	7c 2f                	jl     0x5fad56
5fad27:	47                   	inc    %edi
5fad28:	89 45 f0             	mov    %eax,-0x10(%ebp)
5fad2b:	8b 55 f0             	mov    -0x10(%ebp),%edx
5fad2e:	8b 45 ec             	mov    -0x14(%ebp),%eax
5fad31:	e8 ca 4d fb ff       	call   0x5afb00
5fad36:	85 c0                	test   %eax,%eax
5fad38:	0f 95 c0             	setne  %al
5fad3b:	83 e0 7f             	and    $0x7f,%eax
5fad3e:	8b d0                	mov    %eax,%edx
5fad40:	c1 e0 08             	shl    $0x8,%eax
5fad43:	2b c2                	sub    %edx,%eax
5fad45:	8b d0                	mov    %eax,%edx
5fad47:	88 13                	mov    %dl,(%ebx)
5fad49:	43                   	inc    %ebx
5fad4a:	88 13                	mov    %dl,(%ebx)
5fad4c:	43                   	inc    %ebx
5fad4d:	88 13                	mov    %dl,(%ebx)
5fad4f:	43                   	inc    %ebx
5fad50:	ff 45 f0             	incl   -0x10(%ebp)
5fad53:	4f                   	dec    %edi
5fad54:	75 d5                	jne    0x5fad2b
5fad56:	ff 45 f4             	incl   -0xc(%ebp)
5fad59:	ff 4d e8             	decl   -0x18(%ebp)
5fad5c:	75 95                	jne    0x5facf3
5fad5e:	e9 d4 00 00 00       	jmp    0x5fae37
5fad63:	8b c6                	mov    %esi,%eax
5fad65:	8b 10                	mov    (%eax),%edx
5fad67:	ff 52 10             	call   *0x10(%edx)
5fad6a:	50                   	push   %eax
5fad6b:	8b 45 fc             	mov    -0x4(%ebp),%eax
5fad6e:	8b 10                	mov    (%eax),%edx
5fad70:	ff 52 10             	call   *0x10(%edx)
5fad73:	5a                   	pop    %edx
5fad74:	3a d0                	cmp    %al,%dl
5fad76:	0f 85 bb 00 00 00    	jne    0x5fae37
5fad7c:	8b c6                	mov    %esi,%eax
5fad7e:	8b 10                	mov    (%eax),%edx
5fad80:	ff 52 10             	call   *0x10(%edx)
5fad83:	83 e0 7f             	and    $0x7f,%eax
5fad86:	83 f8 08             	cmp    $0x8,%eax
5fad89:	0f 87 a8 00 00 00    	ja     0x5fae37
5fad8f:	ff 24 85 96 ad 5f 00 	jmp    *0x5fad96(,%eax,4)
5fad96:	37                   	aaa
5fad97:	ae                   	scas   %es:(%edi),%al
5fad98:	5f                   	pop    %edi
5fad99:	00 37                	add    %dh,(%edi)
5fad9b:	ae                   	scas   %es:(%edi),%al
5fad9c:	5f                   	pop    %edi
5fad9d:	00 ba ad 5f 00 ba    	add    %bh,-0x45ffa053(%edx)
5fada3:	ad                   	lods   %ds:(%esi),%eax
5fada4:	5f                   	pop    %edi
5fada5:	00 c1                	add    %al,%cl
5fada7:	ad                   	lods   %ds:(%esi),%eax