5f2d31:	89 45 ec             	mov    %eax,-0x14(%ebp)
5f2d34:	89 5d e8             	mov    %ebx,-0x18(%ebp)
5f2d37:	89 7d fc             	mov    %edi,-0x4(%ebp)
5f2d3a:	74 0b                	je     0x5f2d47
5f2d3c:	83 ff ff             	cmp    $0xffffffff,%edi
5f2d3f:	74 06                	je     0x5f2d47
5f2d41:	8d 47 ff             	lea    -0x1(%edi),%eax
5f2d44:	89 45 fc             	mov    %eax,-0x4(%ebp)
5f2d47:	33 d2                	xor    %edx,%edx
5f2d49:	33 c9                	xor    %ecx,%ecx
5f2d4b:	8b 45 f0             	mov    -0x10(%ebp),%eax
5f2d4e:	0b 45 ec             	or     -0x14(%ebp),%eax
5f2d51:	89 4d f8             	mov    %ecx,-0x8(%ebp)
5f2d54:	89 55 f4             	mov    %edx,-0xc(%ebp)
5f2d57:	74 0a                	je     0x5f2d63
5f2d59:	3b 55 f0             	cmp    -0x10(%ebp),%edx
5f2d5c:	75 05                	jne    0x5f2d63
5f2d5e:	3b 4d ec             	cmp    -0x14(%ebp),%ecx
5f2d61:	74 65                	je     0x5f2dc8
5f2d63:	8d 4e 08             	lea    0x8(%esi),%ecx
5f2d66:	e8 14 2d 00 00       	call   0x5f5a7f
5f2d6b:	50                   	push   %eax
5f2d6c:	ff 75 08             	push   0x8(%ebp)
5f2d6f:	8b ce                	mov    %esi,%ecx
5f2d71:	89 45 e4             	mov    %eax,-0x1c(%ebp)
5f2d74:	e8 3a 2d 00 00       	call   0x5f5ab3
5f2d79:	84 c0                	test   %al,%al
5f2d7b:	74 39                	je     0x5f2db6
5f2d7d:	80 7e 2e 00          	cmpb   $0x0,0x2e(%esi)
5f2d81:	75 17                	jne    0x5f2d9a
5f2d83:	8b 45 fc             	mov    -0x4(%ebp),%eax
5f2d86:	85 c0                	test   %eax,%eax
5f2d88:	74 1e                	je     0x5f2da8
5f2d8a:	8b 4d e8             	mov    -0x18(%ebp),%ecx
5f2d8d:	8b 55 e4             	mov    -0x1c(%ebp),%edx
5f2d90:	88 11                	mov    %dl,(%ecx)
5f2d92:	41                   	inc    %ecx
5f2d93:	48                   	dec    %eax
5f2d94:	89 4d e8             	mov    %ecx,-0x18(%ebp)
5f2d97:	89 45 fc             	mov    %eax,-0x4(%ebp)
5f2d9a:	8b 55 f4             	mov    -0xc(%ebp),%edx
5f2d9d:	8b 4d f8             	mov    -0x8(%ebp),%ecx
5f2da0:	83 c2 01             	add    $0x1,%edx
5f2da3:	83 d1 00             	adc    $0x0,%ecx
5f2da6:	eb a3                	jmp    0x5f2d4b
5f2da8:	83 ff ff             	cmp    $0xffffffff,%edi
5f2dab:	0f 84 66 ff ff ff    	je     0x5f2d17
5f2db1:	e9 5e ff ff ff       	jmp    0x5f2d14
5f2db6:	8b 55 e4             	mov    -0x1c(%ebp),%edx
5f2db9:	8d 4e 08             	lea    0x8(%esi),%ecx
5f2dbc:	52                   	push   %edx
5f2dbd:	e8 2c 36 00 00       	call   0x5f63ee
5f2dc2:	8b 4d f8             	mov    -0x8(%ebp),%ecx
5f2dc5:	8b 55 f4             	mov    -0xc(%ebp),%edx
5f2dc8:	8b c2                	mov    %edx,%eax
5f2dca:	0b c1                	or     %ecx,%eax
5f2dcc:	0f 84 0c ff ff ff    	je     0x5f2cde
5f2dd2:	83 7d 08 00          	cmpl   $0x0,0x8(%ebp)
5f2dd6:	75 18                	jne    0x5f2df0
5f2dd8:	3b 55 f0             	cmp    -0x10(%ebp),%edx
5f2ddb:	75 05                	jne    0x5f2de2
5f2ddd:	3b 4d ec             	cmp    -0x14(%ebp),%ecx
5f2de0:	74 0e                	je     0x5f2df0
5f2de2:	8b 06                	mov    (%esi),%eax
5f2de4:	83 e0 04             	and    $0x4,%eax
5f2de7:	83 c8 00             	or     $0x0,%eax
5f2dea:	0f 84 ee fe ff ff    	je     0x5f2cde
5f2df0:	80 7e 2e 00          	cmpb   $0x0,0x2e(%esi)
5f2df4:	75 0c                	jne    0x5f2e02
5f2df6:	83 7d 08 00          	cmpl   $0x0,0x8(%ebp)
5f2dfa:	74 06                	je     0x5f2e02
5f2dfc:	8b 45 e8             	mov    -0x18(%ebp),%eax
5f2dff:	c6 00 00             	movb   $0x0,(%eax)
5f2e02:	b0 01                	mov    $0x1,%al
5f2e04:	e9 d7 fe ff ff       	jmp    0x5f2ce0
5f2e09:	8b ff                	mov    %edi,%edi
5f2e0b:	55                   	push   %ebp
5f2e0c:	8b ec                	mov    %esp,%ebp
5f2e0e:	83 ec 1c             	sub    $0x1c,%esp
5f2e11:	53                   	push   %ebx
5f2e12:	56                   	push   %esi
5f2e13:	8b f1                	mov    %ecx,%esi
5f2e15:	33 db                	xor    %ebx,%ebx
5f2e17:	57                   	push   %edi
5f2e18:	38 5e 2e             	cmp    %bl,0x2e(%esi)
5f2e1b:	75 3c                	jne    0x5f2e59
5f2e1d:	83 46 6c 04          	addl   $0x4,0x6c(%esi)
5f2e21:	8b 4e 6c             	mov    0x6c(%esi),%ecx
5f2e24:	8b 59 fc             	mov    -0x4(%ecx),%ebx
5f2e27:	85 db                	test   %ebx,%ebx
5f2e29:	75 19                	jne    0x5f2e44
5f2e2b:	e8 c9 a1 ff ff       	call   0x5ecff9
5f2e30:	c7 00 16 00 00 00    	movl   $0x16,(%eax)
5f2e36:	e8 e4 a0 ff ff       	call   0x5ecf1f
5f2e3b:	32 c0                	xor    %al,%al
5f2e3d:	5f                   	pop    %edi
5f2e3e:	5e                   	pop    %esi
5f2e3f:	5b                   	pop    %ebx
5f2e40:	c9                   	leave
5f2e41:	c2 08 00             	ret    $0x8
5f2e44:	8b 06                	mov    (%esi),%eax
5f2e46:	83 e0 01             	and    $0x1,%eax
5f2e49:	83 c8 00             	or     $0x0,%eax
5f2e4c:	74 0b                	je     0x5f2e59
5f2e4e:	8d 41 04             	lea    0x4(%ecx),%eax
5f2e51:	89 46 6c             	mov    %eax,0x6c(%esi)
5f2e54:	8b 78 fc             	mov    -0x4(%eax),%edi
5f2e57:	eb 03                	jmp    0x5f2e5c
5f2e59:	83 cf ff             	or     $0xffffffff,%edi
5f2e5c:	85 ff                	test   %edi,%edi
5f2e5e:	75 23                	jne    0x5f2e83
5f2e60:	8b 06                	mov    (%esi),%eax
5f2e62:	83 e0 04             	and    $0x4,%eax
5f2e65:	0b c7                	or     %edi,%eax
5f2e67:	74 0d                	je     0x5f2e76
5f2e69:	8d 4e 08             	lea    0x8(%esi),%ecx
5f2e6c:	e8 0e 2c 00 00       	call   0x5f5a7f
5f2e71:	33 c0                	xor    %eax,%eax
5f2e73:	66 89 03             	mov    %ax,(%ebx)
5f2e76:	e8 7e a1 ff ff       	call   0x5ecff9
5f2e7b:	c7 00 0c 00 00 00    	movl   $0xc,(%eax)
5f2e81:	eb b8                	jmp    0x5f2e3b
5f2e83:	83 7d 08 00          	cmpl   $0x0,0x8(%ebp)
5f2e87:	8b 46 30             	mov    0x30(%esi),%eax
5f2e8a:	89 45 f0             	mov    %eax,-0x10(%ebp)
5f2e8d:	8b 46 34             	mov    0x34(%esi),%eax
5f2e90:	89 45 ec             	mov    %eax,-0x14(%ebp)
5f2e93:	89 5d e4             	mov    %ebx,-0x1c(%ebp)
5f2e96:	89 7d f4             	mov    %edi,-0xc(%ebp)
5f2e99:	74 0b                	je     0x5f2ea6
5f2e9b:	83 ff ff             	cmp    $0xffffffff,%edi
5f2e9e:	74 06                	je     0x5f2ea6
5f2ea0:	8d 47 ff             	lea    -0x1(%edi),%eax
5f2ea3:	89 45 f4             	mov    %eax,-0xc(%ebp)
5f2ea6:	33 d2                	xor    %edx,%edx
5f2ea8:	33 c9                	xor    %ecx,%ecx
5f2eaa:	8b 45 f0             	mov    -0x10(%ebp),%eax
5f2ead:	0b 45 ec             	or     -0x14(%ebp),%eax
5f2eb0:	89 4d fc             	mov    %ecx,-0x4(%ebp)
5f2eb3:	89 55 f8             	mov    %edx,-0x8(%ebp)
5f2eb6:	74 0a                	je     0x5f2ec2
5f2eb8:	3b 55 f0             	cmp    -0x10(%ebp),%edx
5f2ebb:	75 05                	jne    0x5f2ec2
5f2ebd:	3b 4d ec             	cmp    -0x14(%ebp),%ecx
5f2ec0:	74 6b                	je     0x5f2f2d
5f2ec2:	8d 4e 08             	lea    0x8(%esi),%ecx
5f2ec5:	e8 b5 2b 00 00       	call   0x5f5a7f
5f2eca:	50                   	push   %eax
5f2ecb:	ff 75 08             	push   0x8(%ebp)
5f2ece:	8b ce                	mov    %esi,%ecx
5f2ed0:	89 45 e8             	mov    %eax,-0x18(%ebp)
5f2ed3:	e8 db 2b 00 00       	call   0x5f5ab3
5f2ed8:	84 c0                	test   %al,%al
5f2eda:	74 40                	je     0x5f2f1c
5f2edc:	80 7e 2e 00          	cmpb   $0x0,0x2e(%esi)
5f2ee0:	75 1e                	jne    0x5f2f00
5f2ee2:	83 7d f4 00          	cmpl   $0x0,-0xc(%ebp)
5f2ee6:	74 26                	je     0x5f2f0e
5f2ee8:	ff 75 e8             	push   -0x18(%ebp)
5f2eeb:	8d 45 f4             	lea    -0xc(%ebp),%eax
5f2eee:	8b ce                	mov    %esi,%ecx
5f2ef0:	50                   	push   %eax
5f2ef1:	8d 45 e4             	lea    -0x1c(%ebp),%eax
5f2ef4:	50                   	push   %eax
5f2ef5:	57                   	push   %edi
5f2ef6:	53                   	push   %ebx
5f2ef7:	e8 70 35 00 00       	call   0x5f646c
5f2efc:	84 c0                	test   %al,%al
5f2efe:	74 27                	je     0x5f2f27
5f2f00:	8b 55 f8             	mov    -0x8(%ebp),%edx
5f2f03:	8b 4d fc             	mov    -0x4(%ebp),%ecx
5f2f06:	83 c2 01             	add    $0x1,%edx
5f2f09:	83 d1 00             	adc    $0x0,%ecx
5f2f0c:	eb 9c                	jmp    0x5f2eaa
5f2f0e:	83 ff ff             	cmp    $0xffffffff,%edi
5f2f11:	0f 84 5f ff ff ff    	je     0x5f2e76
5f2f17:	e9 55 ff ff ff       	jmp    0x5f2e71
5f2f1c:	ff 75 e8             	push   -0x18(%ebp)
5f2f1f:	8d 4e 08             	lea    0x8(%esi),%ecx
5f2f22:	e8 c7 34 00 00       	call   0x5f63ee
5f2f27:	8b 55 f8             	mov    -0x8(%ebp),%edx
5f2f2a:	8b 4d fc             	mov    -0x4(%ebp),%ecx
5f2f2d:	8b c2                	mov    %edx,%eax
5f2f2f:	0b c1                	or     %ecx,%eax
5f2f31:	0f 84 04 ff ff ff    	je     0x5f2e3b
5f2f37:	83 7d 08 00          	cmpl   $0x0,0x8(%ebp)
5f2f3b:	75 18                	jne    0x5f2f55
5f2f3d:	3b 55 f0             	cmp    -0x10(%ebp),%edx
5f2f40:	75 05                	jne    0x5f2f47
5f2f42:	3b 4d ec             	cmp    -0x14(%ebp),%ecx
5f2f45:	74 0e                	je     0x5f2f55
5f2f47:	8b 06                	mov    (%esi),%eax
5f2f49:	83 e0 04             	and    $0x4,%eax
5f2f4c:	83 c8 00             	or     $0x0,%eax
5f2f4f:	0f 84 e6 fe ff ff    	je     0x5f2e3b
5f2f55:	80 7e 2e 00          	cmpb   $0x0,0x2e(%esi)
5f2f59:	75 0e                	jne    0x5f2f69
5f2f5b:	83 7d 08 00          	cmpl   $0x0,0x8(%ebp)
5f2f5f:	74 08                	je     0x5f2f69
5f2f61:	8b 4d e4             	mov    -0x1c(%ebp),%ecx
5f2f64:	33 d2                	xor    %edx,%edx
5f2f66:	66 89 11             	mov    %dx,(%ecx)
5f2f69:	b0 01                	mov    $0x1,%al
5f2f6b:	e9 cd fe ff ff       	jmp    0x5f2e3d
5f2f70:	8b ff                	mov    %edi,%edi
5f2f72:	55                   	push   %ebp
5f2f73:	8b ec                	mov    %esp,%ebp
5f2f75:	53                   	push   %ebx
5f2f76:	8b 4d 08             	mov    0x8(%ebp),%ecx
5f2f79:	e8 01 2b 00 00       	call   0x5f5a7f
5f2f7e:	8b d8                	mov    %eax,%ebx
5f2f80:	83 fb ff             	cmp    $0xffffffff,%ebx
5f2f83:	74 15                	je     0x5f2f9a
5f2f85:	ff 75 0c             	push   0xc(%ebp)
5f2f88:	0f b6 cb             	movzbl %bl,%ecx
5f2f8b:	6a 08                	push   $0x8
5f2f8d:	51                   	push   %ecx
5f2f8e:	e8 21 ad ff ff       	call   0x5edcb4
5f2f93:	83 c4 0c             	add    $0xc,%esp
5f2f96:	85 c0                	test   %eax,%eax
5f2f98:	75 dc                	jne    0x5f2f76
5f2f9a:	8b c3                	mov    %ebx,%eax
5f2f9c:	5b                   	pop    %ebx
5f2f9d:	5d                   	pop    %ebp
5f2f9e:	c3                   	ret
5f2f9f:	8b ff                	mov    %edi,%edi
5f2fa1:	55                   	push   %ebp
5f2fa2:	8b ec                	mov    %esp,%ebp
5f2fa4:	83 41 6c 04          	addl   $0x4,0x6c(%ecx)
5f2fa8:	8b 41 6c             	mov    0x6c(%ecx),%eax
5f2fab:	8b 48 fc             	mov    -0x4(%eax),%ecx
5f2fae:	85 c9                	test   %ecx,%ecx
5f2fb0:	75 14                	jne    0x5f2fc6
5f2fb2:	e8 42 a0 ff ff       	call   0x5ecff9
5f2fb7:	c7 00 16 00 00 00    	movl   $0x16,(%eax)
5f2fbd:	e8 5d 9f ff ff       	call   0x5ecf1f
5f2fc2:	32 c0                	xor    %al,%al
5f2fc4:	eb 09                	jmp    0x5f2fcf
5f2fc6:	8b 45 08             	mov    0x8(%ebp),%eax
5f2fc9:	8b 00                	mov    (%eax),%eax
5f2fcb:	89 01                	mov    %eax,(%ecx)
5f2fcd:	b0 01                	mov    $0x1,%al
5f2fcf:	5d                   	pop    %ebp
5f2fd0:	c2 04 00             	ret    $0x4
5f2fd3:	8b ff                	mov    %edi,%edi
5f2fd5:	55                   	push   %ebp
5f2fd6:	8b ec                	mov    %esp,%ebp
5f2fd8:	83 41 6c 04          	addl   $0x4,0x6c(%ecx)
5f2fdc:	8b 41 6c             	mov    0x6c(%ecx),%eax
5f2fdf:	8b 50 fc             	mov    -0x4(%eax),%edx
5f2fe2:	85 d2                	test   %edx,%edx
5f2fe4:	75 14                	jne    0x5f2ffa
5f2fe6:	e8 0e a0 ff ff       	call   0x5ecff9
5f2feb:	c7 00 16 00 00 00    	movl   $0x16,(%eax)
5f2ff1:	e8 29 9f ff ff       	call   0x5ecf1f
5f2ff6:	32 c0                	xor    %al,%al
5f2ff8:	eb 0f                	jmp    0x5f3009
5f2ffa:	8b 4d 08             	mov    0x8(%ebp),%ecx
5f2ffd:	8b 01                	mov    (%ecx),%eax
5f2fff:	89 02                	mov    %eax,(%edx)
5f3001:	8b 41 04             	mov    0x4(%ecx),%eax
5f3004:	89 42 04             	mov    %eax,0x4(%edx)
5f3007:	b0 01                	mov    $0x1,%al
5f3009:	5d                   	pop    %ebp
5f300a:	c2 04 00             	ret    $0x4
5f300d:	8b ff                	mov    %edi,%edi
5f300f:	55                   	push   %ebp
5f3010:	8b ec                	mov    %esp,%ebp
5f3012:	8b 45 08             	mov    0x8(%ebp),%eax
5f3015:	8b d1                	mov    %ecx,%edx
5f3017:	53                   	push   %ebx
5f3018:	33 db                	xor    %ebx,%ebx
5f301a:	57                   	push   %edi
5f301b:	89 02                	mov    %eax,(%edx)
5f301d:	8d 7a 2c             	lea    0x2c(%edx),%edi
5f3020:	8b 45 0c             	mov    0xc(%ebp),%eax
5f3023:	89 42 04             	mov    %eax,0x4(%edx)
5f3026:	8b 45 10             	mov    0x10(%ebp),%eax
5f3029:	6a 08                	push   $0x8
5f302b:	89 42 08             	mov    %eax,0x8(%edx)
5f302e:	33 c0                	xor    %eax,%eax
5f3030:	59                   	pop    %ecx
5f3031:	89 5a 0c             	mov    %ebx,0xc(%edx)
5f3034:	f3 ab                	rep stos %eax,%es:(%edi)
5f3036:	5f                   	pop    %edi
5f3037:	89 5a 10             	mov    %ebx,0x10(%edx)
5f303a:	8b c2                	mov    %edx,%eax
5f303c:	66 89 5a 14          	mov    %bx,0x14(%edx)
5f3040:	88 5a 16             	mov    %bl,0x16(%edx)
5f3043:	89 5a 18             	mov    %ebx,0x18(%edx)
5f3046:	89 5a 1c             	mov    %ebx,0x1c(%edx)
5f3049:	89 5a 20             	mov    %ebx,0x20(%edx)
5f304c:	88 5a 24             	mov    %bl,0x24(%edx)
5f304f:	89 5a 28             	mov    %ebx,0x28(%edx)
5f3052:	5b                   	pop    %ebx
5f3053:	5d                   	pop    %ebp
5f3054:	c2 0c 00             	ret    $0xc
5f3057:	8b ff                	mov    %edi,%edi
5f3059:	55                   	push   %ebp
5f305a:	8b ec                	mov    %esp,%ebp
5f305c:	8b 45 08             	mov    0x8(%ebp),%eax
5f305f:	83 61 10 00          	andl   $0x0,0x10(%ecx)
5f3063:	83 61 14 00          	andl   $0x0,0x14(%ecx)
5f3067:	89 01                	mov    %eax,(%ecx)
5f3069:	8b 45 0c             	mov    0xc(%ebp),%eax
5f306c:	89 41 08             	mov    %eax,0x8(%ecx)
5f306f:	8b 45 10             	mov    0x10(%ebp),%eax
5f3072:	89 41 0c             	mov    %eax,0xc(%ecx)
5f3075:	8b 45 14             	mov    0x14(%ebp),%eax
5f3078:	89 41 18             	mov    %eax,0x18(%ecx)
5f307b:	85 c0                	test   %eax,%eax
5f307d:	74 03                	je     0x5f3082
5f307f:	c6 00 01             	movb   $0x1,(%eax)
5f3082:	8b c1                	mov    %ecx,%eax
5f3084:	5d                   	pop    %ebp
5f3085:	c2 10 00             	ret    $0x10
5f3088:	8b ff                	mov    %edi,%edi
5f308a:	55                   	push   %ebp
5f308b:	8b ec                	mov    %esp,%ebp
5f308d:	8b 55 0c             	mov    0xc(%ebp),%edx
5f3090:	8b 45 10             	mov    0x10(%ebp),%eax
5f3093:	53                   	push   %ebx
5f3094:	56                   	push   %esi
5f3095:	8b 75 08             	mov    0x8(%ebp),%esi
5f3098:	8b d9                	mov    %ecx,%ebx
5f309a:	57                   	push   %edi
5f309b:	ff 75 14             	push   0x14(%ebp)
5f309e:	89 13                	mov    %edx,(%ebx)
5f30a0:	8d 7b 08             	lea    0x8(%ebx),%edi
5f30a3:	89 43 04             	mov    %eax,0x4(%ebx)
5f30a6:	8d 4b 18             	lea    0x18(%ebx),%ecx
5f30a9:	a5                   	movsl  %ds:(%esi),%es:(%edi)
5f30aa:	50                   	push   %eax
5f30ab:	52                   	push   %edx
5f30ac:	a5                   	movsl  %ds:(%esi),%es:(%edi)
5f30ad:	a5                   	movsl  %ds:(%esi),%es:(%edi)
5f30ae:	e8 5a ff ff ff       	call   0x5f300d
5f30b3:	8b 45 18             	mov    0x18(%ebp),%eax
5f30b6:	83 63 70 00          	andl   $0x0,0x70(%ebx)
5f30ba:	89 43 68             	mov    %eax,0x68(%ebx)
5f30bd:	8b 45 1c             	mov    0x1c(%ebp),%eax
5f30c0:	5f                   	pop    %edi
5f30c1:	89 43 6c             	mov    %eax,0x6c(%ebx)
5f30c4:	8b c3                	mov    %ebx,%eax
5f30c6:	5e                   	pop    %esi
5f30c7:	5b                   	pop    %ebx
5f30c8:	5d                   	pop    %ebp
5f30c9:	c2 18 00             	ret    $0x18
5f30cc:	8b ff                	mov    %edi,%edi
5f30ce:	56                   	push   %esi